gpt4 book ai didi

python - 如何绘制 pandas 数据框的第二列?

转载 作者:行者123 更新时间:2023-12-01 07:11:40 27 4
gpt4 key购买 nike

我想绘制 pandas 数据帧的每隔一列。数据帧是通过两个 for 循环创建的。外部循环遍历目录中的 .xls 文件,内部循环遍历单个 Excel 表格的每个工作表。然后这些数据像这样写入数据框中:

X1 Y1 Z1 Y2 Z2 Y3 Z3 ....

其中数字代表 .xls 文件的相应工作表。

现在我想根据 x 列绘制所有 Y 数据。下面的代码显示了如何绘制 Y1 与 X1 的关系图。

在此代码的旧版本中,所有 Y 数据都具有相同的名称,即“Y”。这使得绘图变得非常容易,因为我只需要说 y='Y' 并且每个相应的列都会自动绘制。但这有一个缺点,即图例并不像我希望的那样,因为每个图的每个标签都是相同的,即“Y”。但我想在图例中使用不同的标签,即“Y1”等。这就是为什么我重命名了列,这导致了从第 1 列开始绘制每个第二列的问题。

所以,问题是如何绘制 pandas 数据帧的第二列。

预先感谢您,兹维巴克

一般来说,假设我知道我有多少 Y 数据,这可能会很容易。但不幸的是,每个 .xls 文件中的工作表数量不同。否则
df.plot(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)

然后我尝试用切片来绘制它。df.plot(x=0,y=[:, 1::2], ax=ax1)但随后出现错误:“SyntaxError:无效语法”

最佳答案

您可以将X设置为索引和绘图:

df.set_index('X1').iloc[::2].plot()

另一种方式,不使用set_index:

Ycols = df.filter(like='Y').columns
df.plot(x='X1', y=Ycols)

关于python - 如何绘制 pandas 数据框的第二列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58182962/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com