in visualize/generate.py [0:0]
def create_cdf_chart_by_commtype(cdf_data: Dict[str, tuple[List[tuple[str, int, str, int, int]], np.ndarray]]) -> Line:
line = Line()
# Generate a CDF line for each comm_type
for comm_type, (data, cdf) in cdf_data.items():
x_data = [math.log(item[1], 2) for item in data]
y_data = cdf.tolist()
msg_sizes = [item[1] for item in data]
random_color = "#{:06x}".format(random.randint(0, 0xFFFFFF))
line.add_xaxis(x_data)
line.add_yaxis(
series_name=comm_type,
y_axis=y_data,
label_opts=opts.LabelOpts(is_show=False),
tooltip_opts=opts.TooltipOpts(
formatter=JsCode(
"""
function(params) {
var msgSizes = %s;
return params.seriesName + '<br/>' +
'msg_size: ' + msgSizes[params.dataIndex].toFixed(2) + '<br/>' +
'CDF: ' + params.value[1].toFixed(4);
}
""" % str(msg_sizes)
),
),
)
line.set_global_opts(
title_opts=opts.TitleOpts(title="msg_size CDF"),
xaxis_opts=opts.AxisOpts(
type_="value",
name="log(msg_size)",
name_location="middle",
name_gap=30,
name_textstyle_opts=opts.TextStyleOpts(font_size=14, font_weight='bold')
),
yaxis_opts=opts.AxisOpts(
type_="value",
name="CDF",
name_location="middle",
name_gap=30,
name_textstyle_opts=opts.TextStyleOpts(font_size=14, font_weight='bold')
),
tooltip_opts=opts.TooltipOpts(trigger="axis"),
legend_opts=opts.LegendOpts(
type_="scroll",
pos_left="right",
orient="vertical",
),
)
return line