微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

matplotlib 中的误差线显示在其他曲线上

如何解决matplotlib 中的误差线显示在其他曲线上

我有一个图,其中一些数据由带有误差条的散点图表示,我想为其拟合一条曲线。但是,无论我在代码中绘制曲线的哪个位置,误差线都漂浮在曲线之上。我希望拟合曲线显示在误差线前面,否则我看不到它。

这是一个简单的问题示例:

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')

以及它产生的情节:

enter image description here

有两个轴,因为我要比较两个数据集。

如您所见,即使我在误差线上方绘制了曲线,误差线和点仍然掩盖了曲线。我该怎么做才能禁用它?

解决方法

您可以指定 zorder:

ln2 = ax3.errorbar(x,r,yerr=x,color='red',fmt='o',zorder=1)

enter image description here

如果您还希望在前景中有绿线,则需要将其轴 ax 移动到更高的 zorder(默认为 0)并隐藏 ax 的轴补丁,以便底层 ax3 保持可见:

ax.set_zorder(1)
ax.patch.set_visible(False)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。