如何在x轴上绘制数据帧值,在y轴上绘制索引

时间:2016-11-19 18:41:32

标签: python pandas matplotlib plot dataframe

我有两个问题,但解决其中任何一个都忽略了解决另一个问题的必要性。

我有一个数据框,其温度值来自例如:有几个(例如3个)高度的6个位置。高度被锁定,因此是数据帧的索引。示例(与数字不符):

  place1 place2 place3 place4 place5 place6
1     12     10      9     13     10      4
2     18     15     13     14      8      8
3     21      9     16     15     11     12

我想绘制每个地方的温度作为高度的函数,但是,我希望高度(指数)沿着Y轴而不是x轴 。因此,不要让图表“从左到右”运行,我希望“从下到上”运行。

如果我只是Plot a DataFrame,它看起来有点像:索引(高度)沿着X轴而不是Y轴。 - 请注意,值与表格不匹配!!

ax.plot(data)

它不能用于转置数组:它仍然是沿Y轴的值,对锁定的X值很灵活。

我想要它look like this沿着X轴的可变温度和沿着Y轴的锁定高度。 (请不要使用不同的数据集;重点是图表是“垂直的”而不是水平的):

ax.errorbar(temp, H, xerr=tempError, ecolor='gray')

后者是通过绘制简单的python列表制作的,这对我有用。但是,我的数据集很大,因此使用DataFrames会很好,最重要的是,我想使用fill_betweenx来显示std,而不是图中当前显示的错误栏。

所以我实际上是在寻找这两个问题的答案:

  1. 如何从DataFrame翻转绘图(即不转置df,但让轴交换)?
  2. 或者,如何在不使用DataFrames的情况下使用fill_betweenx

2 个答案:

答案 0 :(得分:3)

使用pyplot.plot并按照您希望的方式构建x和y。

from matplotlib import pyplot as plt
plt.plot(df.place1, df.index, df.place2, df.index, df.place3, df.index,
         df.place4, df.index, df.place5, df.index, df.place6, df.index)
plt.show()
plt.close()

或者更一般:

for name, series in df.iteritems():
    plt.plot(series, df.index)
plt.show()
plt.close()

答案 1 :(得分:0)

这是对问题号的建议。 1

plt.plot(data, range(number_of_heights))

在您的示例中,number_of_heights为3