从excel文件和Pandas(python)绘制更多图形
我有一个从excel文件和Pandas(python)绘制更多图形,python,excel,pandas,plot,Python,Excel,Pandas,Plot,我有一个.xlsx文件,其结构如下 现在,我知道了如何通过函数操作表中的数据。但是,我正在(应该说,没有成功)寻找一种方法,在相同的图形区域中绘制第2列中标记为a、B、C的三条曲线,使用第3列作为x轴,第9列作为y轴 我在这里以“复制粘贴”的适当形式复制表格 Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9 1 FlagA 5743 bla bla 0.02% 13-Apr
.xlsx
文件,其结构如下
现在,我知道了如何通过函数操作表中的数据。但是,我正在(应该说,没有成功)寻找一种方法,在相同的图形区域中绘制第2列中标记为a、B、C的三条曲线,使用第3列作为x轴,第9列作为y轴
我在这里以“复制粘贴”的适当形式复制表格
Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9
1 FlagA 5743 bla bla 0.02% 13-Apr-18 DS Y 17229
2 FlagA 654 bla bla -0.89% 13-Apr-18 DS Y 1962
3 FlagA 543 bla bla -0.74% 13-Apr-18 DS Y 1629
4 FlagA 321 bla bla -0.56% 13-Apr-18 DS Y 963
5 FlagA 8765 bla bla -0.37% 13-Apr-18 DS Y 26295
6 FlagA 98769 bla bla 3.75% 13-Apr-18 DS Y 296307
7 FlagA 943 bla bla 4.01% 13-Apr-18 DS Y 2829
8 FlagA 7986 bla bla 4.04% 13-Apr-18 DS Y 23958
9 FlagA 54343 bla bla 3.27% 13-Apr-18 DS Y 163029
10 FlagB 876856 bla bla 4.16% 13-Apr-18 DS Y 2630568
11 FlagB 36854 bla bla 3.36% 13-Apr-18 DS Y 110562
12 FlagB 3644 bla bla 4.21% 13-Apr-18 DS Y 10932
13 FlagC 68 bla bla 3.51% 13-Apr-18 DS Y 204
14 FlagC 354 bla bla 3.70% 13-Apr-18 DS Y 1062
15 FlagC 568748 bla bla 1.66% 13-Apr-18 DS Y 1706244
16 FlagC 64 bla bla 2.00% 13-Apr-18 DS Y 192
您可以这样尝试:
for flag, data in df.groupby('Col2'):
plt.plot(data['Col3'], data['Col9'], label=flag)
plt.legend()
plt.show()
要添加条件,只需使用if
语句:
for flag, data in df.groupby('Col2'):
if flag != 'FlagC':
plt.plot(data['Col3'], data['Col9'], label=flag)
在对
DataFrame
进行分组并设置适当的索引后,可以直接使用pd.DataFrame.plot()
这对我很有用:
plotted_df = df[['Col2', 'Col3', 'Col9']].set_index('Col3')
plotted_df.groupby('Col2')['Col9'].plot()
总结:您正在寻找一个散点图,其中Col3值为x轴,Col9值为y轴,颜色或标记形状符合Col2?像这样的:?谢谢。如果我想插入一个条件表达式,只显示对应于标签“a”和“b”而不是“c”的绘图,该怎么办?我原以为,由于我收到错误消息“未找到要放入图例的标签的句柄”,因此没有生成绘图。它对您的示例数据有效,我不确定问题是什么,我认为我发现了问题,这有两个方面:1。我的条件是如果flag=='FlagC'。2.我按两列进行分组:df.groupby(['Col2','Col6'])(在我的代码中,我有不同的日期),因此标志永远不等于Col2。