使用字符串数组绘制 x 轴,与原始数组中的顺序相同,并且不在 matplotlib 中按字母顺序对其进行排序

Eds*_*ood 4 python arrays numpy matplotlib jupyter-notebook

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()
Run Code Online (Sandbox Code Playgroud)

这是我在 JupyterNotebook 中得到的输出:

kma*_*o23 6

由于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)
Run Code Online (Sandbox Code Playgroud)

阴谋:

plt 月份按字母顺序排列

注意:更多自定义绘图请参考:pylab date demo