You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:39:00