如何为数据帧的索引绘制不同的图?

时间:2018-03-29 12:30:42

标签: python pandas dataframe matplotlib seaborn

我是大熊猫的新手,并试图学习并遇到这个问题。 我是一个数据框,我正在尝试为每个索引值绘制数据帧的行。我想为数据框中的每个索引绘制不同的图(子图)。

ANDAMAN & NICOBAR ISLANDS   264296  32413   80984   1286    338 31  564 669
ARUNACHAL PRADESH   401876  27045   418732  3287    162815  771 362553  6648
CHANDIGARH  852574  51447   8720    138329  1160    1960    246 1014

这里的字符串值是索引,我想要数据帧的这些索引的不同图。 怎么办呢?

2 个答案:

答案 0 :(得分:1)

我认为您需要T进行转置,plot使用参数subplots=True

print(df)

输出:

                                1      2       3       4       5     6       7     8
0                                                                                   
ANDAMAN & NICOBAR ISLANDS  264296  32413   80984    1286     338    31     564   669
ARUNACHAL PRADESH          401876  27045  418732    3287  162815   771  362553  6648
CHANDIGARH                 852574  51447    8720  138329    1160  1960     246  1014

其中第0列位于包含位置的索引中。

使用df.T将数据帧转换为“列”格式与“行”。

d.T

输出:

0  ANDAMAN & NICOBAR ISLANDS  ARUNACHAL PRADESH  CHANDIGARH
1                     264296             401876      852574
2                      32413              27045       51447
3                      80984             418732        8720
4                       1286               3287      138329
5                        338             162815        1160
6                         31                771        1960
7                        564             362553         246
8                        669               6648        1014

现在让我们生成情节:

df.T.plot(subplots=True)

输出:

enter image description here

答案 1 :(得分:0)

这是一个例子:

import pandas as pd
from matplotlib import pyplot as plt

data = pd.DataFrame({"ANDAMAN & NICOBAR ISLANDS": [264296, 32413, 80984, 1286, 338, 31,  564, 669],
                   "ARUNACHAL PRADESH": [401876, 27045, 418732, 3287, 162815, 771, 362553, 6648],
                   "CHANDIGARH": [852574, 51447, 8720, 138329, 1160, 1960, 246, 1014]})
data.plot()
plt.show()

列标签:

data.index = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']
data.plot(xticks=range(len(data.index)))