Numpy 或 Matplotlib 正在更改我的 np.array 的顺序,这与我的情节冲突。这导致月份乱序,而相应的数据仍然按相同的顺序排列,这导致情节看起来很奇怪:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
f = np.array([53, 56, 63, 72, 79, 86, 89, 88, 83, 74, 65, 56])
month = np.array(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])
plt.plot(month, f)
plt.xlabel('Month')
plt.ylabel('Temperature')
plt.title('Average Monthly Temperature in Elizabeth City, NC')
plt.show()
这是我在 JupyterNotebook 中得到的输出:
最佳答案
由于 month
是一个字符串数组,plt.plot()
命令按字母顺序对其进行排序。因此,我们必须使用 xticks
,然后像下面那样绘制它,以获取与原始数组 month
中顺序相同的字符串。
In [16]: f = np.array([53, 56, 63, 72, 79, 86, 89, 88, 83, 74, 65, 56])
...: month = np.array(["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"])
...: plt.xticks(range(len(f)), month)
...: plt.plot(f)
剧情:
注意:有关更多自定义图,请参阅:pylab date demo
关于python - 用字符串数组绘制 x 轴,与原始数组中的顺序相同,而不是在 matplotlib 中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413069/