Matplotlib没有按正确的顺序绘制已排序的数据集

时间:2018-01-09 17:49:27

标签: python-3.x pandas matplotlib

我有类似于以下

的数据集
Group       Values
-------     -------
Group A       5
Group B       2
Group C       10

我通过执行以下操作对数据集进行了排序:

dataset2 = data.sort_values(by= 'Values', ascending=False)

当我显示dataset2时,它会以正确的降序正确显示数据集。但是,当我使用dataset2绘制matplotlib时,会使用原始数据顺序绘制它;不是排序的。

left = dataset2.index.values

height = dataset2['Values']  # heights of bars
tick_label = dataset2['Group']  # labels for bars

# plotting a bar chart
plt.bar(left, height, tick_label = tick_label, width = 0.8)
plt.xticks(rotation=90)
plt.show()

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题做两件事:

1)制作已排序数据集的副本。

data_sorted = dataset2.copy()

2)将左侧改为:

left = np.arange(len(data_sorted))

由于某些原因,当我使用索引来设置x轴时,它使用了原始数据集中的原始索引。我认为当您对值进行排序时,索引已重置。