更改 x 刻度标签 matplotlib 中数字的顺序
Change order of numbers in x tick labels matplotlib
我已将一年的每小时数据平均为一天。因此,我有一个数组代表一天中的小时,另一个数组代表数据。
我想绘制它,但是我想绘制它是从中午 12 点到上午 11 点,而不是从午夜到午夜。 Matplotlib 似乎不允许我将 x 轴更改为从中午 12 点开始到上午 11 点结束,无论我如何重新排列数据,标签总是 运行 从 0 到 24。
这是我正在尝试做的一个例子
import matplotlib.pyplot as plt
import numpy as np
hour_of_day = np.concatenate([np.arange(12,24), np.arange(0,12)])
plt.plot(hour_of_day, np.random.rand(24))
plt.xticks(hour_of_day)
plt.xlabel('Hour of day')
生成以下图:
我只想让 x 轴从 12 开始,到 24,然后重新开始到 0,并在 11 结束:
[12,13,14,15,16,17,18,19,20,21,22,23,0,1,2,3,4,5,6,7,8,9,10,11,12 ] 遵循 24 小时制。
任何帮助将不胜感激!
将 hour_of_day
格式设置为 str
:
plt.plot(hour_of_day.astype(str), y)
我已将一年的每小时数据平均为一天。因此,我有一个数组代表一天中的小时,另一个数组代表数据。
我想绘制它,但是我想绘制它是从中午 12 点到上午 11 点,而不是从午夜到午夜。 Matplotlib 似乎不允许我将 x 轴更改为从中午 12 点开始到上午 11 点结束,无论我如何重新排列数据,标签总是 运行 从 0 到 24。
这是我正在尝试做的一个例子
import matplotlib.pyplot as plt
import numpy as np
hour_of_day = np.concatenate([np.arange(12,24), np.arange(0,12)])
plt.plot(hour_of_day, np.random.rand(24))
plt.xticks(hour_of_day)
plt.xlabel('Hour of day')
生成以下图:
我只想让 x 轴从 12 开始,到 24,然后重新开始到 0,并在 11 结束: [12,13,14,15,16,17,18,19,20,21,22,23,0,1,2,3,4,5,6,7,8,9,10,11,12 ] 遵循 24 小时制。
任何帮助将不胜感激!
将 hour_of_day
格式设置为 str
:
plt.plot(hour_of_day.astype(str), y)