• 七、从文件加载数据

    七、从文件加载数据

    很多时候,我们想要绘制文件中的数据。 有许多类型的文件,以及许多方法,你可以使用它们从文件中提取数据来图形化。 在这里,我们将展示几种方法。 首先,我们将使用内置的csv模块加载CSV文件,然后我们将展示如何使用 NumPy(第三方模块)加载文件。

    1. import matplotlib.pyplot as plt
    2. import csv
    3. x = []
    4. y = []
    5. with open('example.txt','r') as csvfile:
    6. plots = csv.reader(csvfile, delimiter=',')
    7. for row in plots:
    8. x.append(int(row[0]))
    9. y.append(int(row[1]))
    10. plt.plot(x,y, label='Loaded from file!')
    11. plt.xlabel('x')
    12. plt.ylabel('y')
    13. plt.title('Interesting Graph\nCheck it out')
    14. plt.legend()
    15. plt.show()

    七、从文件加载数据 - 图1

    这里,我们打开样例文件,包含以下数据:

    1. 1,5
    2. 2,3
    3. 3,4
    4. 4,7
    5. 5,4
    6. 6,3
    7. 7,5
    8. 8,7
    9. 9,4
    10. 10,4

    接下来,我们使用csv模块读取数据。 csv读取器自动按行分割文件,然后使用我们选择的分隔符分割文件中的数据。 在我们的例子中,这是一个逗号。 注意:csv模块和csv reader不需要文件在字面上是一个.csv文件。 它可以是任何具有分隔数据的简单的文本文件。

    一旦我们这样做了,我们将索引为 0 的元素存储到x列表,将索引为 1 的元素存储到y列表中。 之后,我们都设置好了,准备绘图,然后显示数据。

    虽然使用 CSV 模块是完全正常的,但使用 NumPy 模块来加载我们的文件和数据,可能对我们更有意义。 如果你没有 NumPy,你需要按下面的步骤来获取它。 为了了解安装模块的更多信息,请参阅 pip 教程。 大多数人应该都能打开命令行,并执行pip install numpy

    如果不能,请参阅链接中的教程。

    一旦你安装了 NumPy,你可以编写如下代码:

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x, y = np.loadtxt('example.txt', delimiter=',', unpack=True)
    4. plt.plot(x,y, label='Loaded from file!')
    5. plt.xlabel('x')
    6. plt.ylabel('y')
    7. plt.title('Interesting Graph\nCheck it out')
    8. plt.legend()
    9. plt.show()

    结果应该是相同的图表。 稍后,当我们加载数据时,我们可以利用 NumPy 为我们做一些更多的工作,但这是教程未来的内容。 就像csv模块不需要一个特地的.csv一样,loadtxt函数不要求文件是一个.txt文件,它可以是一个.csv,它甚至可以是一个 python 列表对象。