python - Pandas 绘图条顺序类别

标签 python pandas plot categories

我有一个包含三个唯一值“低”、“中”和“高”的分类变量的数据集:

df.CatVar.value_counts()
Out[93]: 
Medium    35832
Low       25311
High      12527
Name: CatVar, dtype: int64

我正在尝试将唯一值的数量绘制为条形图。但是,以下代码按 ["Medium"、"Low"、"High"] 的顺序给我条形图

df.CatVar.value_counts().plot(kind="bar")

如何更改图中条形的顺序?

最佳答案

有 2 种可能的解决方案 - 在 plot 之前更改 index 的顺序 - by reindexloc:

df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar")
df.CatVar.value_counts().loc[["Low", "Medium", "High"]].plot(kind="bar")

或者使用ordered categorical ,所以在 value_counts 之后通过 categories 参数获得顺序:

df.CatVar = pd.Categorical(df.CatVar, categories=["Low", "Medium", "High"], ordered=True)
df.CatVar.value_counts(sort=False).plot(kind="bar")

示例:

df = pd.DataFrame({'CatVar':['Low','Medium','Low','Low','Medium','High']})
print (df)
   CatVar
0     Low
1  Medium
2     Low
3     Low
4  Medium
5    High

df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar")

pic

关于python - Pandas 绘图条顺序类别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50553698/

相关文章:

python - 当我创建共享库 shim 而不是可执行文件时,如何满足第 3 方共享库对 stat 的引用?

python - tensorflow 计算 tf.nn.conv2d

python - python Abaqus 内存不足

python - 在 python/django 中将变量从一种方法传递到另一种方法

python - 如何以高刷新率将数据流式传输到 Jupyter 中的 Bokeh 图?

python - 取消透视 Pandas 数据框的最佳方法

python - python pandas 转换 Unix 时间戳

python - 将零/南行添加到 pandas python 中的不连续索引

r - 使用 R 或 Matlab 的双变量分布的 3D 图

Rstudio 服务器无法创建绘图