如何在python matplotlib中添加可变误差条以散布具有共享轴的绘图点

时间:2017-06-14 00:38:26

标签: matplotlib

我已经生成了一个图表,该图表显示了一个地形轮廓,其中沿着轮廓的点表示日期点。然而,这些过时的点也具有对称的不确定性值/误差条(通常对于每个点而变化)。

在此示例中,我将非日期位置视为'np.nan'。我想将不确定性值添加到y2轴(平均年龄),定义的不确定性值为y2err。

每次我使用ax2.errorbar(...)行时,我的图形都会受到挤压和扭曲。

import numpy as np
import matplotlib.pyplot as plt

fig, ax1 = plt.subplots()
#Longitude = x; Elevation = y
x = (-110.75696,-110.75668,-110.75640,-110.75612,-110.75584,-110.75556,-110.75528)
y = (877,879,878,873,871,872,872)

ax1.plot(x, y)
ax1.set_xlabel('Longitude')
# Make the y-axis label, ticks and tick labels match the line color.
ax1.set_ylabel('Elevation', color='b')
ax1.tick_params('y', colors='b')

ax2 = ax1.twinx()
# Mean Age, np.nan = 0.0
y2 = (np.nan,20,np.nan,np.nan,np.nan,np.nan,np.nan)
y2err = (np.nan,5,np.nan,np.nan,np.nan,np.nan,np.nan)
ax2.scatter(x, y2, color='r')
#add error bars to scatter plot points
# (??????) ax2.errorbar(x, y, y2, y2err, capsize = 0, color='black')
ax2.set_ylim(10,30)
ax2.set_ylabel('Mean Age', color='r')
ax2.tick_params('y', colors='r')

fig.tight_layout()
plt.show()

如果我不应用ax2.errorbar ...行,我的情节看起来像第一张图片,这就是我想要的,但是点数显示不确定度值(+/-等于y-点的两侧)轴方向)。 Plot of Elevation vs Age without error bars

当我使用ax2.errorbar线时,它看起来像第二个图像: Plot when using ax2.errorbar line

谢谢!

0 个答案:

没有答案