我需要制作一个带有省略号作为标记的图(带有错误栏).经过一番搜索后,我在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)