python – 使用错误条matplotlib制作椭圆标记

我需要制作一个带有省略号作为标记的图(带有错误栏).经过一番搜索后,我在matplotlib.patches中提出了Ellipse.然后我可以用plt.errorbar绘制误差条.但问题是,即使我首先给出错误栏命令,错误栏总是在前景中绘制,而省略号在背景上绘制,无论我在程序中给出什么顺序.

有没有人知道一个更好的方法来创建一个椭圆作为标记(每个点将有不同的偏心率)与误差条?或者至少指导我如何将错误栏放在后台?

这是我到目前为止的一个最小例子:

import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
from matplotlib.patches import Ellipse

PlotFileName="test.pdf"
pdf = PdfPages(PlotFileName)
fig=plt.figure(1)
ax1=fig.add_subplot(111)
plt.xlim([1,4])
plt.ylim([2,8])
ax1.errorbar([2.5], [5], yerr=[1], fmt="o", color="black", ms=0.1)
ax1.add_artist(Ellipse((2.5, 5), 1, 1, facecolor="green", edgecolor="black"))
pdf.savefig(fig)
pdf.close()
plt.close()

以下是它的外观:

我希望错误栏进入椭圆的背景.

提前致谢…

最佳答案 对于两个绘图命令,请使用
zorder说明符.

从文档中:“为艺术家设置zorder.首先绘制具有较低zorder值的艺术家.”

import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse

fig=plt.figure(1)
ax1=fig.add_subplot(111)
plt.xlim([0,5])
plt.ylim([0,10])
ax1.errorbar([2.5], [5], yerr=[1], fmt="o", color="black", ms=0.1, zorder=1)
ax1.add_artist(Ellipse((2.5, 5), 1, 1, facecolor="green", edgecolor="black",zorder=2))

plt.show()

exit(0)
点赞