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

问题描述 投票:1回答:1

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

我有一个数据框,其温度值来自于有几个(例如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值是灵活的。

我希望它能够沿着X轴变化的温度和沿着Y轴的锁定高度的look like this。 (请不要选择不同的数据集;重点是图表是'垂直的'而不是水平的):

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

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

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

  1. 如何从DataFrame中翻转绘图(即不转置df,但使轴交换)?
  2. 或者,如何在不使用DataFrames的情况下使用fill_betweenx
python pandas matplotlib plot dataframe
1个回答
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()
© www.soinside.com 2019 - 2024. All rights reserved.