首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas绘图栏顺序类别

Pandas绘图栏顺序类别
EN

Stack Overflow用户
提问于 2018-05-27 23:29:40
回答 3查看 10.2K关注 0票数 10

我有一个包含分类变量的数据集,其中包含三个唯一的值"low“、"medium”和"high":

代码语言:javascript
运行
复制
df.CatVar.value_counts()
Out[93]: 
Medium    35832
Low       25311
High      12527
Name: CatVar, dtype: int64

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

代码语言:javascript
运行
复制
df.CatVar.value_counts().plot(kind="bar")

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

EN

Stack Overflow用户

回答已采纳

发布于 2018-05-27 23:30:47

有两种可能的解决方案-通过reindexloc更改绘图前的index顺序

代码语言:javascript
运行
复制
df.CatVar.value_counts().reindex(["Low", "Medium", "High"]).plot(kind="bar")
代码语言:javascript
运行
复制
df.CatVar.value_counts().loc[["Low", "Medium", "High"]].plot(kind="bar")

或者使用ordered categorical,因此在value_counts get order by categories参数之后:

代码语言:javascript
运行
复制
df.CatVar = pd.Categorical(df.CatVar, categories=["Low", "Medium", "High"], ordered=True)
df.CatVar.value_counts(sort=False).plot(kind="bar")

示例

代码语言:javascript
运行
复制
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")

票数 13
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50553698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档