[英]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
而不是图中当前显示的误差条。
所以我实际上正在寻找以下两个问题中任何一个的答案:
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.