如何使用matplotlib

时间:2016-04-23 14:19:00

标签: python matplotlib

我在python中使用2D数组数据创建图表时遇到了一些麻烦。

我有一个txt文件,其中包含如下数据:

0 2 4 6 8
-1 -2 -1 2 4
0 1 0 -1 0
1 3 5 7 6
0 1 -1 -3 2
1 -1 1 1 0

(这是缩短的,我的实际文件是100 * 10000

所以基本上是一个5x6阵列。

我希望x轴是每个数组中元素的总数,它总是固定限制为5。 Y轴需要是txt文件中的实际数据点。 总共创建了6行。

下面是油漆中快速绘制的照片: Image here (low score, cannot embed) 所以Y =数据值,X =每个单独数组的长度,行数是它们的总数。

我想使用这种风格,但是如果可能的话,使线宽为1px,因为将会有大约10,000行绘制。 http://matplotlib.org/examples/style_sheets/plot_fivethirtyeight.html

我尝试了一些代码,这就是我遇到的问题,我可以读取数据并将其存储在某种类型的数组中,但之后无法使用它来制作图形。 (顶部是我的阅读代码,底部是来自五十年代风格的示例代码。

import numpy as np
import matplotlib.pyplot as plt

with open('thisone.txt') as file:
    array2d = [[int(digit) for digit in line.split()] for line in file]


from matplotlib import pyplot as plt
import numpy as np

x = np.linspace(0, 10)

with plt.style.context('fivethirtyeight'):
    plt.plot(x, np.sin(x) + x + np.random.randn(50))
    plt.plot(x, np.sin(x) + 0.5 * x + np.random.randn(50))
    plt.plot(x, np.sin(x) + 2 * x + np.random.randn(50))


plt.show() 

1 个答案:

答案 0 :(得分:0)

读入数据后,迭代数据中的行并绘制图形行与范围(len(行))。

import numpy as np
import matplotlib.pyplot as plt

with open('thisone.txt') as file:
    array2d = [[int(digit) for digit in line.split()] for line in file]

with plt.style.context('fivethirtyeight'):
    for row in array2d:
        plt.plot(xrange(len(row)), row)

plt.show()