Python 如何读取文本文件并使用matplotlib打印

Python 如何读取文本文件并使用matplotlib打印,python,matplotlib,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 o

这是我第一次使用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()

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

您可以使用pandas读取CSV文件

import pandas as pd

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


从那里,您可以使用pandas数据框作为matplot的输入。可以找到一个很好的教程

您可以使用pandas读取CSV文件

import pandas as pd

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

从那里,您可以使用pandas数据框作为matplot的输入。可以找到一个好的教程

我希望这对您有所帮助:

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)
我希望这能帮助你:

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)
如果从不同位置打开文件,请不要忘记在我的示例中更改文件名,或者如果文件的浮点值为x.append(int(row[0])更改为x.append(float(row[0]),并且y的浮点值相同,请输入正确的路径


如果您从不同位置打开文件,请不要忘记在我的示例中更改文件名,或者输入正确的路径,如果您的文件具有浮点值,请将x.append(int(row[0])更改为x.append(float(row[0]),并对y执行相同的操作

您的功能是什么?没有这些我帮不了你。对不起,我可能应该说得更清楚些。我只需要第二列和第三列的数据点与日期时间的简单曲线图。谢谢。是.txt文件还是csv文件?是csv文件file@Talal请看我的答案,希望它能帮助你你的功能是什么?没有这些我帮不了你。对不起,我可能应该说得更清楚些。我只需要第二列和第三列的数据点与日期时间的简单曲线图。谢谢。是.txt文件还是csv文件?是csv文件file@Talal查看我的答案,希望它能帮助您将
int
转换为
行[0]
将失败,因为这是一个日期时间,不是浮点或数字类型stringtrue我只是举了一个一般的例子,因为他没有给出详细信息,但如果文件中的数据按照他显示的方式写入,它将失败问题状态我想绘制第二列和第三列,所以只需简单的编辑,您的答案应该可以。嗨,伙计们,我尝试了您建议的代码,但对我不起作用。我对我的原始和问题进行了一些编辑,并发布了代码。请参见上文。您对
int
的转换将在
行[0]
上失败,因为这是一个日期时间,不是浮点或数字类型的stringtrue。我只是举了一个一般性的例子,因为他没有给出详细信息,但如果文件按照他显示的方式写入数据,则会失败问题状态我想绘制第二列和第三列,所以只需简单的编辑,你的答案就行了嗨,伙计们,我试过你建议的代码,但对我不起作用。我对我的原始和问题进行了一些编辑,并发布了代码。见上文。