Plotly go.Bar如何根据数值自定义正负值对应的High/Low图例标签
要实现按正负值匹配High/Low图例标签,需要将正负值拆分为两个独立的Bar trace分别渲染,不要把所有数据放在同一个trace中。修正后的完整代码如下:
import pandas as pd import numpy as np import plotly.graph_objects as go # 构建测试数据集 df = pd.DataFrame({'Date': ['07-2020', '08-2020', '09-2020', '10-2020'], 'Value': [3, -2, 4, -1] }) # 拆分正负值子集 high_df = df[df['Value'] > 0] low_df = df[df['Value'] < 0] fig = go.Figure( data=[ # 正值对应High标签,红色 go.Bar( x=high_df["Date"], y=high_df["Value"], name='High', marker_color='rgb(255,0,0)' ), # 负值对应Low标签,蓝色 go.Bar( x=low_df["Date"], y=low_df["Value"], name='Low', marker_color='rgb(0,0,255)' ) ], layout=go.Layout( xaxis=dict( tickangle=60, tickfont=dict(family="Rockwell", color="crimson", size=14) ), yaxis=dict( title="Net Change", showticklabels=True ) ) ) fig.show()
运行后会自动生成两个图例项,分别对应红色的正值High和蓝色的负值Low,点击图例可以单独隐藏/显示对应类别的柱子。
内容的提问来源于stack exchange,提问作者kms
相关产品推荐
相关产品推荐

