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

Plotly技术问题:如何用bx.bar修改colorbar标题及更改color-legend标题

Plotly Colorbar & Legend Title Solutions

Hey there! Let's tackle your two Plotly questions one by one with clear, actionable examples:

1. Modify Colorbar Title for Bar Plots

Colorbars show up when you use a continuous color scale with your bar plot. Here's how to update their title depending on whether you're using Plotly Express or Graph Objects:

Using Plotly Express (px.bar)

You can either set the title directly after creating the figure or define it upfront with the labels parameter:

import plotly.express as px
df = px.data.tips()

# Option 1: Update layout post-figure creation
fig = px.bar(df, x="day", y="total_bill", color="total_bill")
fig.update_layout(coloraxis_colorbar_title_text="Total Bill ($)")

# Option 2: Define custom title upfront
# fig = px.bar(df, x="day", y="total_bill", color="total_bill", labels={"total_bill": "Total Bill ($)"})

fig.show()

Using Graph Objects (go.Bar)

When building plots manually, configure the colorbar title within the coloraxis layout settings:

import plotly.graph_objects as go
import pandas as pd

df = pd.DataFrame({
    "Category": ["A", "B", "C"],
    "Value": [15, 25, 35],
    "Intensity": [2, 5, 8]
})

fig = go.Figure()
fig.add_trace(go.Bar(
    x=df["Category"],
    y=df["Value"],
    marker=dict(color=df["Intensity"], coloraxis="coloraxis")
))

# Set custom colorbar title
fig.update_layout(
    coloraxis=dict(
        colorbar=dict(title="Intensity Level")
    )
)

fig.show()

2. Update Color Legend Title (Discrete Categories)

The legend you marked with a blue circle is for discrete color groups (like different categories). Here's how to rename its title:

Using Plotly Express (px.bar)

Two simple ways to adjust this:

import plotly.express as px
df = px.data.tips()

# Option 1: Update legend title via layout
fig = px.bar(df, x="day", y="total_bill", color="sex")
fig.update_layout(legend_title_text="Gender")

# Option 2: Map original column name to custom title upfront
# fig = px.bar(df, x="day", y="total_bill", color="sex", labels={"sex": "Gender"})

fig.show()

Using Graph Objects (go.Bar)

If you're adding individual traces for each category, set the legend title in the legend layout section:

import plotly.graph_objects as go
import pandas as pd

df = px.data.tips()
male_data = df[df["sex"] == "Male"]
female_data = df[df["sex"] == "Female"]

fig = go.Figure()
fig.add_trace(go.Bar(x=male_data["day"], y=male_data["total_bill"], name="Male"))
fig.add_trace(go.Bar(x=female_data["day"], y=female_data["total_bill"], name="Female"))

# Set custom legend title
fig.update_layout(
    legend=dict(title=dict(text="Gender"))
)

fig.show()

内容的提问来源于stack exchange,提问作者mariusEBR

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:42:28