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

组合图中柱状图顺序调整:将group_b放首位、group_a放末位

调整组合图中柱状图顺序的简洁方法

核心思路

无需修改列名或手动调整图例,直接通过指定分类变量的显示顺序来实现,既保证数据准确性又简洁高效。

针对不同可视化库的实现方法

1. Pandas + Matplotlib

将分组列转换为有序分类类型,绘图时会自动遵循指定顺序:

import pandas as pd
import matplotlib.pyplot as plt

# 示例数据集
df = pd.DataFrame({
    'group': ['group_a', 'group_b', 'group_c'],
    'value': [10, 20, 15]
})

# 定义自定义顺序:group_b 优先,group_a 最后
df['group'] = pd.Categorical(
    df['group'],
    categories=['group_b', 'group_c', 'group_a'],
    ordered=True
)

# 绘制组合图(此处以柱状+折线为例)
ax = df.plot(kind='bar', x='group', y='value')
df.plot(kind='line', x='group', y='value', ax=ax, marker='o', color='red')
plt.show()

2. Seaborn

直接在绘图函数中通过order参数指定顺序,无需修改原始数据:

import seaborn as sns
import matplotlib.pyplot as plt

# 示例数据集同上方df
sns.set_style("whitegrid")

# 绘制柱状图
ax = sns.barplot(data=df, x='group', y='value', order=['group_b', 'group_c', 'group_a'])
# 添加折线图时同步指定order
sns.lineplot(data=df, x='group', y='value', ax=ax, marker='o', color='red', order=['group_b', 'group_c', 'group_a'])
plt.show()

3. Plotly

通过update_xaxes设置分类顺序:

import plotly.express as px

# 示例数据集同上方df
fig = px.bar(df, x='group', y='value')
# 指定x轴分类顺序
fig.update_xaxes(categoryorder='array', categoryarray=['group_b', 'group_c', 'group_a'])
# 添加折线图
fig.add_scatter(x=df['group'], y=df['value'], mode='lines+markers', marker_color='red')
fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:52:38