首页 > 解决方案 > Matplotlib pyplot:绘图数组混合了 y 轴标签

问题描述

我正在用 Python 编写一个简单的程序来绘制两个整数列表,一个数据一个时间轴。时间列表以 1 为增量从 0 变为 3,而数据列表包括:5,10, 3,12。我使用打印语句来验证列表确实具有上述值。

    plt.plot(time_axis,data_array, 'ro')
    plt.axis([0, 20, 0, 20])
    plt.show()

但是,如图所示,绘图 y 轴是按照我的数据列表处理的顺序标记的,而不是升序:5、10、3、12

有没有办法让y轴以相等的增量增加到20?

在此处输入图像描述

编辑:我注意到只有当我使用列表作为参数时才会发生这种混淆:例如,

plt.plot([0,1,2,3],[5,10,3,12],'bo')  #gives the correct graph while     
plt.plot(time_axis,data_array,'bo')   #gives the incorrect graph, 

即使两个列表 time_axis 和 data_array 包含相同的值。追溯我的错误,我从文本文件中导入数据值,并且解析不正确,因此数据值不是整数。char 值的格式为 '5\n' 等,因此 numplot 变得混乱。修复解决了问题!

标签: pythonlistmatplotlibplot

解决方案


我觉得您省略了使这变得古怪的代码,但这就是我所做的:

import matplotlib.pyplot as plt

time_axis = range(0,4)
data_array=[5,10,3,12]
plt.plot(time_axis,data_array, 'ro')
plt.axis([0, 20, 0, 20])
plt.show()

这会产生图像:从 matplotlbi 绘图 这似乎是您的目标。


推荐阅读