mat*_*ick 3 python plot matplotlib pandas
当我创建一个DataFrame时,然后按列排序它似乎在迭代显示中排序(即无论repr给出),但是当我调用DataFrame.plot()函数时,它会绘制未排序的数组.调用matplotlib.pylab.plot可以正常工作.我怀疑它与聪明的指针重新排列没有被传递给绘图函数调用来访问数据的任何东西......或者我可能只是在做一些愚蠢的事情.我在pandas 0.8.1(osx和linux with python2.7.something)和pandas 0.9.0(osx with python3.something)上试过这个.
import pandas
import numpy
from matplotlib.pylab import *
a = numpy.random.randn(100,10)
df = pandas.DataFrame(a)
df.shape
df.sort(column=0)
df.columns
df.sort(column=0, inplace=True)
df[0]
df[0].plot()
Run Code Online (Sandbox Code Playgroud)
默认情况下,绘图是您的数据与索引的对比.如果是数字索引,请在对列进行排序后查看索引.你可能想使用plot(use_index = False).见下面的例子.
In [2]: df = pd.DataFrame(np.random.randn(10, 2), columns=['A', 'B'])
In [3]: df
Out[3]:
A B
0 -0.938196 2.220319
1 -0.022503 0.564602
2 0.033094 -0.717969
3 2.466486 1.229651
4 -0.641596 -1.016921
5 0.094125 1.531526
6 0.579631 1.398635
7 -0.854799 -0.930904
8 -1.177894 -1.501657
9 0.341655 -0.917243
In [4]: df.sort(columns='A', inplace=True)
Out[4]:
A B
8 -1.177894 -1.501657
0 -0.938196 2.220319
7 -0.854799 -0.930904
4 -0.641596 -1.016921
1 -0.022503 0.564602
2 0.033094 -0.717969
5 0.094125 1.531526
9 0.341655 -0.917243
6 0.579631 1.398635
3 2.466486 1.229651
In [5]: df['A'].plot(use_index=False)
Out[5]: <matplotlib.axes.AxesSubplot at 0xb56ac6c>
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
1157 次 |
| 最近记录: |