如何使用matplotlib读取文本文件和绘图

时间:2019-03-29 16:54:47

标签: python matplotlib

这是我第一次使用python和matplotlib,我想从CSV文件中绘制数据。

CSV文件的格式为:

10/03/2018 00:00,454.95,594.86

具有约4000行。我想在同一图上绘制第二列的数据与每一行的日期时间以及第三列的数据与每一行的日期时间。

到目前为止,这是我的代码,但无法正常工作:

import matplotlib.pyplot as plt
import csv
import datetime
import re
T = []
X = []
Y = []
with open('Book2.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:

        datetime_format = '%d/%m/%Y %H:%M'
        date_time_data = datetime.datetime.strptime(row[0],datetime_format)
        T.append(date_time_data)
        X.append(float(row[1]))
        Y.append(float(row[2]))

        plt.plot(T,X, label='second column data vs datetime')
        plt.plot(T,Y, label='third column data vs datetime')

        plt.xlabel('DateTime')
        plt.ylabel('Data')
        plt.title('Interesting Graph\nCheck it out')
        plt.legend()
        plt.show()

任何帮助或指导都会很棒。非常感谢! :)

3 个答案:

答案 0 :(得分:0)

您可以使用熊猫来读取CSV文件

import pandas as pd

data = pd.read_csv('file_name.txt', header = None)

从那里,您可以将pandas数据框用作matplot的输入。可以找到一个不错的教程here

答案 1 :(得分:0)

希望对您有所帮助

import csv
import numpy as np


a = []
with open('table.csv') as f:  # Let's say your data is at 'table.csv'
    f_csv = csv.reader(f)
    for row in f_csv:
        a.append(row)  # Get each line

b = np.array(a)  # Make it as a numpy array
c = b[:,[1,2]]  # Filter it by column

print(c)

答案 2 :(得分:0)

import matplotlib.pyplot as plt
import csv

x = []
y = []

with open('example.csv','r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    for row in plots:
        x.append(float(row[2]))
        y.append(float(row[3]))

plt.plot(x,y, label='Loaded from file!')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Interesting Graph\nCheck it out')
plt.legend()
plt.show()

如果您要从其他位置打开文件(如果文件具有浮点值),请将x.append(int(row [0]))更改为x,请不要忘记在我的示例中更改文件名或放置正确的路径.append(float(row [0]))和y相同