Python error : Extra plot while plotting multiple data files using glob
Python error : Extra plot while plotting multiple data files using glob
我有以下代码,其中我使用带通配符 *
的 glob 绘制两个数据文件 "data_1.txt"(二次函数)和 "data_2.txt"(三次函数)。
import numpy as np
import matplotlib.pyplot as plt
import glob
#fig,ax = plt.subplots()
path = "data_*.txt"
for datafile in glob.glob(path):
#data = np.loadtxt(datafile)
data = np.genfromtxt(datafile)
#print(data)
#ax.plot(data)
plt.plot(data)
#plt.plot(data[:,0], data[:,1]) # This line works
plt.show()
但是,这会生成一个额外的图(红色线)!
如果我使用 plt.plot(data[:,0], data[:,1])
而不是 plt.plot(data)
,红线就不会再出现了。
有什么解释吗?在这种情况下,genfromtxt
和 loadtxt
之间也有区别吗?
你看到的红线实际上是一条蓝线和一条红线在彼此之上。这些是根据索引绘制的数据文件的第一列。
为了使用 matplotlib 的 plot
函数生成线图,应该指定 x 和 y 坐标数组。一种选择确实是使用
data = np.genfromtxt(datafile)
plt.plot(data[:,0],data[:,1])
另一种选择是解压数据。所以对于两列数据文件,
x,y = np.genfromtxt(datafile, unpack=True)
plt.plot(x,y)
这两个选项在 np.loadtxt
中同样可用。在相应的文档中,您会发现 genfromtxt
has a lot more options than loadtxt
。这些额外的选项可能对排除页眉或页脚数据或替换缺失值很有用。 return 两个命令的类型相同。
我有以下代码,其中我使用带通配符 *
的 glob 绘制两个数据文件 "data_1.txt"(二次函数)和 "data_2.txt"(三次函数)。
import numpy as np
import matplotlib.pyplot as plt
import glob
#fig,ax = plt.subplots()
path = "data_*.txt"
for datafile in glob.glob(path):
#data = np.loadtxt(datafile)
data = np.genfromtxt(datafile)
#print(data)
#ax.plot(data)
plt.plot(data)
#plt.plot(data[:,0], data[:,1]) # This line works
plt.show()
但是,这会生成一个额外的图(红色线)!
如果我使用 plt.plot(data[:,0], data[:,1])
而不是 plt.plot(data)
,红线就不会再出现了。
有什么解释吗?在这种情况下,genfromtxt
和 loadtxt
之间也有区别吗?
你看到的红线实际上是一条蓝线和一条红线在彼此之上。这些是根据索引绘制的数据文件的第一列。
为了使用 matplotlib 的 plot
函数生成线图,应该指定 x 和 y 坐标数组。一种选择确实是使用
data = np.genfromtxt(datafile)
plt.plot(data[:,0],data[:,1])
另一种选择是解压数据。所以对于两列数据文件,
x,y = np.genfromtxt(datafile, unpack=True)
plt.plot(x,y)
这两个选项在 np.loadtxt
中同样可用。在相应的文档中,您会发现 genfromtxt
has a lot more options than loadtxt
。这些额外的选项可能对排除页眉或页脚数据或替换缺失值很有用。 return 两个命令的类型相同。