【问题标题】:Seaborn bar plot by dataframe order按数据框顺序的 Seaborn 条形图
【发布时间】:2021-04-14 21:38:59
【问题描述】:

假设我想要一个关于 2020 年第四季度和 2021 年第一季度每周销售数量的条形图。在某些时候,周数将重置为 1,这将不代表数据的实际顺序:

df = pd.DataFrame(
    {
        "Year": [2020, 2020, 2020, 2021, 2021, 2021],
        "Week": [50, 51, 52, 1, 2, 3],
        "Qty": [173, 29, 16, 46, 39, 82],
    }
)

所以,我希望我的条形图 x 轴像我的数据框一样排序:50、51、52、1、2、3

但如果我这样做:

sns.barplot(x='Week', y='Qty', data=df)

我明白了:

数据是按x轴(周数)升序排列的,而不是我的数据框的顺序。

我认为order 参数正是我正在寻找的,可用于沿数据框索引对条形进行排序:

sns.barplot(x='Week', y='Qty', data=df, order=df.index)

但是,只需要 2021 年:

我需要做什么?

【问题讨论】:

  • order=df['Week']?

标签: python pandas seaborn


【解决方案1】:

您可以尝试将Week 列转换为字符串类型

sns.barplot(x=df['Week'].astype(str), y=df['Qty'])

【讨论】:

  • 是的,这和order=df['Week'] 一样有效(我认为后者会产生我所看到的内容,即按周数的升序排列)。谢谢你们!
猜你喜欢
  • 2020-08-13
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-01
  • 1970-01-01
  • 2019-09-05
相关资源
最近更新 更多