繁体   English   中英

如何在 x 轴上绘制数据框值并在 y 轴上绘制索引

[英]How to plot dataframe values on x-axis and indices on y-axis

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

我有一个数据框,其中包含来自多个(例如 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-AXIS 而不是 x-axis 因此,不是让图表“从左到右”运行,而是希望“从下到上”运行。

如果我只是绘制一个 DataFrame,它看起来有点像这样:索引(高度)沿着 X 轴而不是 Y 轴运行。 - 请注意,值与表不匹配!!

ax.plot(data)

转置数组不起作用:它仍然是沿 Y 轴的值可以灵活地锁定 X 值。

我希望它看起来像这样,沿着 X 轴的可变温度和沿着 Y 轴的锁定高度。 (请不要打扰不同的数据集;重点是图表是“垂直”而不是水平的):

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

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

所以我实际上正在寻找以下两个问题中任何一个的答案:

  1. 如何从 DataFrame 翻转绘图(即不转置 df,而是交换轴)?
  2. 或者,我该如何利用fill_betweenx不使用DataFrames?

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

plt.plot(data, range(number_of_heights))

在你的例子中 number_of_heights 是 3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM