更改 Matplotlib 图表 X 轴上的顺序

use*_*376 7 python matplotlib pandas

我使用 python 在 matplotlib 中创建了一个图表,x 轴是一周中的几天(周一至周日)。但是,在绘制数据时,x 轴并未排列在周一至周日。

有什么方法可以重新排序 x 轴以使其格式化?

或者有什么方法可以重新排序数据集?这是一个使用熊猫数据框读取的 csv 文件

示例数据:(存在于 csv 中:'./data/Days_Summary.csv')

Day         Value

 Monday      56        
 Tuesday     23    
 Wednesday   34     
 Thursday     56     
  Friday      58     
 Saturday     70      
  Sunday      43      
Run Code Online (Sandbox Code Playgroud)

代码:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
df=pd.read_csv('./data/Days_Summary.csv')
days_values=df.groupby(['day'])['day'].count().plot(kind='bar')
plt.xlabel('Day')
plt.ylabel('Values')
plt.show()
Run Code Online (Sandbox Code Playgroud)

and*_*ece 8

使用.loc设置天阶:

field = "Day"
day_order = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
ax = df.set_index(field).loc[day_order].plot(kind="bar", legend=False)
ax.set_ylabel("Value")
Run Code Online (Sandbox Code Playgroud)

阴谋

注意:使用groupby()count()不会为您提供Value字段中的值,而是会计算每组中的行数。在这种情况下,您每天只会得到 1 的计数。因此,这个答案假设您实际上想要绘制Value每天的值。