根据Pandas中的特定列制作子图

时间:2016-10-16 01:39:21

标签: python pandas

我有一个pandas数据框,其中包含给定点的各种函数的多项式近似,其中多项式近似的度数可变。它被安排成第一列是函数名,第二列是x值,然后第2-5列是具有相应度的多项式的近似值。我想为每个函数制作1个图,显示近似值与该函数的收敛性。我知道一种方法是根据第一列名称将数据框拆分为单独的数据框,但想知道是否有更优雅的方法来执行此操作。

编辑以澄清: 所以在数据框中,有两个不相关的函数,比如a和b。第二列包含x值,第三列和第四列是x的函数。所以它可能看起来像

   fnctn  x  y1  y2
0     a  1   2   3
1     a  2   3   2
2     a  3   4   3
3     a  4   3   4
4     a  5   2   3
5     b  1   1   2
6     b  2   4   6
7     b  3   9   12
8     b  4   16  20
9     b  5   25  30

我想要一个y1和y2的图,其中第一列是 a 在一个图上,另一个图y1和y2,其中第一列是 b < / p>

1 个答案:

答案 0 :(得分:2)

import pandas
from matplotlib import pyplot as plt
df = pandas.DataFrame({'fnctn':['a','a','a','b','b','b'],'x':[1,2,3,1,2,3],'y1':[2,3,4,3,2,2],'y2':[3,2,3,4,3,2]})

In [19]: df
Out[19]: 
  fnctn  x  y1  y2
0     a  1   2   3
1     a  2   3   2
2     a  3   4   3
3     b  1   3   4
4     b  2   2   3
5     b  3   2   2

for f in set(df['fnctn']): 
     df[df['fnctn']==f].plot(x='x')

a b