python - 用字符串数组绘制 x 轴,与原始数组中的顺序相同,而不是在 matplotlib 中按字母顺序排序

标签 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()

这是我在 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)

剧情:

plt with months in alphabetical order

注意:有关更多自定义图,请参阅:pylab date demo

关于python - 用字符串数组绘制 x 轴,与原始数组中的顺序相同,而不是在 matplotlib 中按字母顺序排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413069/

相关文章:

python - 用于匹配或忽略一组两位数的正则表达式

javascript - 循环使用撇号的数组对象时出现语法错误

c - 使用带指针的数组注释

python - 为什么 MATLAB/Numpy/Scipy 性能缓慢且达不到 CPU 能力(失败)?

python - 如何在 Avro 架构中定义复杂类型

python - 如何序列化作为 XML Exporter 中的项目列表的 Scrapy 字段

Python,如何读取平面文件并通过识别文件中每列的分隔符将信息填充到相关列中

javascript - 不能通过引用 Angular 来 $filter 数组

python - numpy 中的快速高级索引

python - 如何在 numpy 中创建反对角单位矩阵(其中对角线从左向右翻转)