如何在Plotly的for循环中通过add_trace设置小提琴图图例名称?
解决Plotly Go小提琴图Trace名称自定义问题
你遇到的问题是因为没有正确在go.Violin对象中指定name参数。只需要在创建每个小提琴图Trace时,明确设置name属性即可替换默认的"trace 1"这类名称。
修正后的代码示例
from plotly.colors import n_colors import plotly.graph_objects as go # 准备与hist_data长度匹配的自定义名称列表 # 你可以根据实际需求替换成自己的名称 trace_names = [f"分组 {i+1}" for i in range(len(hist_data))] # 注意:RGB值范围为0-255,原代码中的rgb(300,10,10)是无效值,已修正 colors = n_colors('rgb(2, 200, 200)', 'rgb(255, 10, 10)', len(hist_data), colortype='rgb') fig = go.Figure() for data_line, color, name in zip(hist_data, colors, trace_names): fig.add_trace(go.Violin( x=data_line, line_color=color, name=name # 这里设置每个trace的自定义名称 )) fig.update_traces(orientation='h', side='positive', width=3, points=False) fig.update_layout(xaxis_showgrid=False, xaxis_zeroline=True)
关键说明
- 确保你有一个与
hist_data长度一致的名称列表trace_names,每个元素对应一个Trace的名称。 - 将
name参数直接传入go.Violin的构造函数中,这样Plotly会自动使用该名称作为Trace的标识,在图例、悬浮提示中都会显示自定义名称。 - 原代码中
rgb(300,10,10)超出了RGB颜色值0-255的范围,已修正为rgb(255,10,10),避免渲染错误。
内容的提问来源于stack exchange,提问作者Holmbrero
相关产品推荐
相关产品推荐

