Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用matplotlib将两个csv文件添加到一个图形中?_Python_Csv_Graph - Fatal编程技术网

Python 如何使用matplotlib将两个csv文件添加到一个图形中?

Python 如何使用matplotlib将两个csv文件添加到一个图形中?,python,csv,graph,Python,Csv,Graph,我有两组数据,它们在X上的升幅相同。它们都在CSV文件中。我想把这两个输入到一个图表中,但我被卡住了 这是与我的当前代码一起显示的图形 我需要它来重置X值和图形层,而不是在完成后返回到(0,0) 我的tester3文件包含数据 我的tester4文件包含数据 这是我当前的代码 导入matplotlib.pyplot作为plt 导入csv x=[] y=[] 将open('tester3.csv','r')作为csvfile: plots=csv.reader(csvfile,分隔符=',')

我有两组数据,它们在X上的升幅相同。它们都在CSV文件中。我想把这两个输入到一个图表中,但我被卡住了

这是与我的当前代码一起显示的图形

我需要它来重置X值和图形层,而不是在完成后返回到
(0,0)

我的tester3文件包含数据

我的tester4文件包含数据

这是我当前的代码

导入matplotlib.pyplot作为plt
导入csv
x=[]
y=[]
将open('tester3.csv','r')作为csvfile:
plots=csv.reader(csvfile,分隔符=',')
对于绘图中的行:
x、 追加(int(行[0]))
y、 追加(int(行[1]))
plt.绘图(x,y,label='TEST 1!',color='black')
plt.legend()
将open('tester4.csv','r')作为csvfile:
plots=csv.reader(csvfile,分隔符=',')
对于绘图中的行:
x、 追加(int(行[0]))
y、 追加(int(行[1]))
plt.plot(x,y,label='TEST 2!',颜色='green')
plt.xlabel('x')
plt.ylabel('y')
plt.title('有趣的图表\n检查出来')
plt.legend()
plt.show()

您不需要将新数据附加到相同的x和y阵列,您可以执行以下快速修复:

导入matplotlib.pyplot作为plt
导入csv
x=[]
y=[]
将open('tester3.csv','r')作为csvfile:
plots=csv.reader(csvfile,分隔符=',')
对于绘图中的行:
x、 追加(int(行[0]))
y、 追加(int(行[1]))
plt.绘图(x,y,label='TEST 1!',color='black')
x1=[]
y1=[]
将open('tester4.csv','r')作为csvfile:
plots=csv.reader(csvfile,分隔符=',')
对于绘图中的行:
x1.追加(int(行[0]))
y1.追加(int(行[1]))
plt.plt(x1,y1,label='TEST 2!',颜色='green')
plt.xlabel('x')
plt.ylabel('y')
plt.title('有趣的图表\n检查出来')
plt.legend()
plt.show()

分别绘制数据。不要继续向同一集合添加数据

以下是将数据加载到绘图中的辅助函数:

import matplotlib.pyplot as plt
import csv

# Note: list(zip(*data)) transposes rows and columns, so x
#       gets the first column numbers and y gets the second.

def plot_data(plt,file,label,color):
    with open(file,newline='') as csvfile:
        x,y = list(zip(*csv.reader(csvfile)))
    plt.plot(x,y,label=label,color=color)

plot_data(plt,'tester3.csv','TEST 1!','black')
plot_data(plt,'tester4.csv','TEST 2!','green')

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

在绘制第一组绘图后,您可以清空
x
y
,然后它应该可以正常工作。