matplotlib 中的误差条显示在其他曲线上
Error bars in matplotlib display over other curves
我有一个图,其中一些数据由带有误差条的散点图表示,我想为其拟合一条曲线。然而,无论我在代码中的哪个位置绘制曲线,误差线都会浮在它上面。我希望拟合曲线显示在误差线前面,否则我看不到它。
这是一个简单的问题示例:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
x = np.arange(1,10)
r = np.random.random(x.size)
fig1, ax = plt.subplots()
ln1 = ax.plot(2*x,x,'g')
ax3 = ax.twinx()
ln2 = ax3.errorbar(x,r,yerr=x,color='red',fmt='o')
ln2fit = ax3.plot(x,r-0.3,'b')
及其产生的情节:
有两个轴,因为我正在比较两个数据集。
如您所见,即使我将曲线绘制在误差线上方,误差线和点仍然遮挡了曲线。我该怎么做才能禁用此功能?
您可以指定zorder:
ln2 = ax3.errorbar(x,r,yerr=x,color='red',fmt='o',zorder=1)
如果你还想在前景中有绿线,你需要将它的轴 ax
移动到更高的 zorder(默认为 0)并隐藏 ax
的轴补丁,以便然后底层 ax3
保持可见:
ax.set_zorder(1)
ax.patch.set_visible(False)
我有一个图,其中一些数据由带有误差条的散点图表示,我想为其拟合一条曲线。然而,无论我在代码中的哪个位置绘制曲线,误差线都会浮在它上面。我希望拟合曲线显示在误差线前面,否则我看不到它。
这是一个简单的问题示例:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
x = np.arange(1,10)
r = np.random.random(x.size)
fig1, ax = plt.subplots()
ln1 = ax.plot(2*x,x,'g')
ax3 = ax.twinx()
ln2 = ax3.errorbar(x,r,yerr=x,color='red',fmt='o')
ln2fit = ax3.plot(x,r-0.3,'b')
及其产生的情节:
有两个轴,因为我正在比较两个数据集。
如您所见,即使我将曲线绘制在误差线上方,误差线和点仍然遮挡了曲线。我该怎么做才能禁用此功能?
您可以指定zorder:
ln2 = ax3.errorbar(x,r,yerr=x,color='red',fmt='o',zorder=1)
如果你还想在前景中有绿线,你需要将它的轴 ax
移动到更高的 zorder(默认为 0)并隐藏 ax
的轴补丁,以便然后底层 ax3
保持可见:
ax.set_zorder(1)
ax.patch.set_visible(False)