我有两个问题,但是解决其中一个问题却忽略了解决另一个问题的需要。

我有一个带有温度值的数据框,例如在几个(例如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而不是如图所示的当前错误栏。

因此,我实际上正在寻找以下两个问题的答案:


如何从DataFrame翻转图(即不转置df,而是进行轴交换)?
或者,如何在不使用DataFrames的情况下利用fill_betweenx

最佳答案

使用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()

关于python - 如何在x轴上绘制数据框值并在y轴上绘制索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40696591/

10-12 16:36