Pandas:绘制数据帧列的X轴值和数据帧行的Y轴值

时间:2017-02-27 12:07:01

标签: python-2.7 pandas matplotlib plot

我有这个数据集,其中列是多年的值和Sterling Pounds中的行值:

         total_2013  total2014  total_2015  total_2016
0         1569000    1614000     1644000     1659000
1          330000     423000      474000      540000
2         2100000    2080000     2093000     2135000
3         2161000    2238000     2221000     2200000
4         1865000    1975000     2046000     2152000
5         1903000    1972000     1970000     2034000
6         2087000    2091000     1963000     1956000
7         1237000    1231000     1199000     1188000
8         1043000    1072000     1076000     1059000
9          569000     610000      564000      592000
10        2207000    2287000     2191000     2274000
11        1908000    1908000     1917000     1908000

我需要在 X轴上绘制total_2013,total_2014,total_2015,total_2016 列。

Y轴,我需要为每一行的单个值绘制一个点,并在2013-2016年的这些值之间划一条线

我无法让工作xticks将列中的值作为X轴中的不同时间点。不确定这是否正确。

到目前为止我已经绘制了这个:

import matplotlib
import matplotlib.pyplot as plt
import pandas as pd
matplotlib.style.use('ggplot')
ax = data_merged_years.plot(kind='line', title ="UK Schools budget per year 2013-2016", figsize=(15, 10), legend=True, fontsize=12)
ax.set_xlabel("Year", fontsize=12)
ax.set_ylabel("Pounds", fontsize=12)
plt.show()

我的尝试:错误的情节X和Y错误:
My attempt: Wrong plot with incorrect X and Y

1 个答案:

答案 0 :(得分:0)

使用您的脚本我可以生成的输出是: enter image description here

如果您希望将列作为x轴而不是不同的行,则可以在绘制之前transpose使用DataFrame:

In [13]: import matplotlib.pyplot as plt
    ...: import pandas as pd
    ...: matplotlib.style.use('ggplot')
    ...: ax = data_merged_years.transpose().plot(kind='line', title ="UK Schools budget per year 2013-2016", figsize=(15, 10), legend=True, fontsize=12)
    ...: ax.set_xlabel("Year", fontsize=12)
    ...: ax.set_ylabel("Pounds", fontsize=12)
    ...: plt.show()
    ...: 

enter image description here

从原始情节来看,似乎你会在一个情节中拥有超过一万行。你确定那是你想要的吗?