Python 如何绘制数据帧的第二列?
我想绘制熊猫数据帧的每一列。dataframe由两个for循环创建。外部循环遍历目录中的.xls文件,内部循环遍历单个excel表的每一页。然后将这些数据写入数据框,如下所示: X1 Y1 Z1 Y2 Z2 Y3 Z3 其中,数字表示.xls文件的对应页 现在我想根据x列绘制所有Y数据。 下面的代码显示了如何将Y1与X1进行对比 在此之前,在该代码的旧版本中,所有Y数据都具有相同的名称,即“Y”。这使得绘图非常容易,因为我只需要说y='y',每个对应的列都是自动绘制的。但这有一个缺点,即图例不是我希望的那样,因为每个绘图的每个标签都是相同的,即“Y”。但我希望图例中有不同的标签,即“Y1”等。这就是我重命名列的原因,这导致了从列1开始绘制第二列的问题 所以,问题是如何绘制数据帧的第二列 提前谢谢大家,, Zwieback 一般来说,假设我知道我有多少Y型数据,这可能很容易。但不幸的是,每个.xls文件中有不同数量的工作表。 否则Python 如何绘制数据帧的第二列?,python,pandas,plot,Python,Pandas,Plot,我想绘制熊猫数据帧的每一列。dataframe由两个for循环创建。外部循环遍历目录中的.xls文件,内部循环遍历单个excel表的每一页。然后将这些数据写入数据框,如下所示: X1 Y1 Z1 Y2 Z2 Y3 Z3 其中,数字表示.xls文件的对应页 现在我想根据x列绘制所有Y数据。 下面的代码显示了如何将Y1与X1进行对比 在此之前,在该代码的旧版本中,所有Y数据都具有相同的名称,即“Y”。这使得绘图非常容易,因为我只需要说y='y',每个对应的列都是自动绘制的。但这有一个缺点,即图例不是
图(x=0,y=[1,3,5],ax=ax1) 如果有三列包含Y数据,则可以使用
if index %2 ==0:
fig = plt.figure()
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
plt.subplots_adjust(wspace=0.5)
ax1.set_title(str(files_xls[parameter]), fontsize = 10)
ax1.set_ylabel('I [$\mu$A]')
ax1.set_xlabel('E [V/m]')
df.plot(x=0,y=1, ax=ax1)
plt.show()
if index %2 ==1:
ax2.set_title(str(files_xls[parameter]), fontsize = 10)
ax2.set_ylabel('I [$\mu$A]')
df.plot(x=0, y=1, ax=ax2, legend=True).get_figure().savefig(str(files_xls[parameter])+'.png', dpi=450)
plt.show()
plt.close(fig)
然后我试着用切片来绘制它。
绘图(x=0,y=[:,1::2],ax=ax1)
但随后出现一个错误:“SyntaxError:无效语法”您可以将
X
设置为索引和绘图:
df.set_index('X1').iloc[::2].plot()
另一种方法,不使用设置索引
:
Ycols = df.filter(like='Y').columns
df.plot(x='X1', y=Ycols)