首页 > 解决方案 > 从 excel 文件和 Pandas (python) 绘制更多图表

问题描述

我有一个.xlsx结构如下的文件

在此处输入图像描述

现在,我知道如何通过 pandas 函数操作表中的数据了。但是,我正在(不成功,我应该说)寻找一种方法在同一图形区域中绘制由第 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

标签: pythonexcelpandasplot

解决方案


你可以这样尝试:

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)

推荐阅读