Matplotlib pyplot:绘图数组混合y轴标签

时间:2018-05-18 17:55:49

标签: python list matplotlib plot

我在Python中创建一个简单的程序来绘制两个整数列表,一个数据在时间轴上。 时间列表从0到3以1为增量,而数据列表包括:5,10,3,12。我使用print语句来验证列表是否具有上述值。

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

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

有没有办法让y轴以相等的增量增量高达20?

enter image description here

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

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感到困惑。修复解决了这个问题!

1 个答案:

答案 0 :(得分:0)

我觉得你没有省略使这个变得棘手的代码,但这就是我所做的:

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

生成图像:Plot from matplotlbi 这似乎是你的目标。