使用matplotlib在x轴上对分类变量进行自定义排序

M_Shimal

我想将x轴上的月份定为我指定的顺序。我已经在Google上进行了广泛的搜索,以学习如何执行此操作,但是很遗憾。我对R语言非常熟悉,在R使用factor class及其级别中,我会非常轻松地做到这一点但是我对python来说相对较新,从阅读中学到的内容是Categorical dtypepython最接近factorR。但是,在两种语言下,这些类的行为似乎有很大不同。使用进行绘制时,没有分类顺序的排序,pyplot.bar()但是以seaborn条形图正确地排序了相同的图。

pyplot.bar()的数据框中是否存在用于自定义排序分类变量的选项?

pandas = 0.22.0
matplotlib = 2.1.2
seaborn = 0.8.1



import pandas as pd
import matplotlib.pyplot as plt
from pandas.api.types import CategoricalDtype


TestData = pd.DataFrame({'value':[1,2,5,3,5,6,8,9,8,1,2,8,9],'Month':['Jan','Mar','Jan','Feb','May','Apr','Jan','Mar','Jan','Feb','May','Apr','May']})

# Applying custom categorical order
MonthLabels = ['Jan','Feb','Mar','Apr','May']
M_catType = CategoricalDtype(categories = MonthLabels, ordered = True)
TestData['Month'] = TestData['Month'].astype(M_catType)

plt.bar('Month','value', data=TestData)

在此处输入图片说明 在此处输入图片说明

解决了

matplotlib的版本可能是错误的。阅读本文后我将版本更新为2.2.2,并且一切都按预期工作(即,轴按设置类别时提供的顺序排序。此外,我还使用以下代码设置了类别,

TestData['Month'] = pd.Categorical(TestData['Month'], categories = MonthLabels , ordered = True)
毛绒的

这可能会有所帮助;文档中

注意新的分类数据不会自动排序。您必须明确传递ordered=True以指示已订购Categorical

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在 seaborn 散点图中对分类 x 轴进行排序

自定义帖子类型,按中继框值对分类术语进行排序

使用 Highcharts 在 x 轴上显示自定义值

如何在MongoDB中使用自定义字段对分页进行索引和排序,例如:名称而不是ID

初学者尝试使用分类 X 轴制作线条 ggplot 并自定义颜色设置

使用自定义分类索引顺序在Python中对热图行进行重新排序

X轴时间轴上的自定义日期

R:使用knncat对分类变量进行分类时出错

Matplotlib:在自定义格式的x轴上显示所有日期

按自定义分类和自定义字段ASC对帖子进行排序

如何在索引的DataFrame上对热图的x轴和y轴执行自定义排序?

Python matplotlib,在轴上添加单个自定义刻度

在Python中自定义对分组数据框的排序

JFreeChart DTSC上的自定义X轴标签

Highcharts:x 轴上完全自定义的标签位置

通过jpgrph在x轴上添加自定义直线

Lightningchart JS中X轴上的自定义DateTime

在悬停的X轴上显示自定义刻度

如何在X轴上设置自定义标签?

按自定义变量对数组进行排序

通过自定义排序字段对管理员中的分类术语表进行排序

使用mergesort vs自定义排序对arraylist进行排序

如何使用Unix排序进行自定义排序?

使用自定义排序算法对卡片组进行排序

如何使用Jekyll按自定义的YAML前题变量对帖子进行排序?

在 x、y 轴上对区域进行分类

在多个属性上对 NSArray 自定义对象进行排序

在自定义字段上使用两个JOIN进行查询排序

在Clojure上使用自定义比较器对原始数组进行排序