为了重现上面的图,您可以将普通图的3个棘刺设置为不可见,然后将相应的元素添加到图中。
import matplotlib.pyplot as plt# input datacd = 1.2c = 3.2ccf = 2.8cmcf = 1.9cm = 2.05limits=(4,1)fig, ax = plt.subplots(figsize=(5,1.8))plt.subplots_adjust(left=0.2, right=0.8)# set up plotax.set_xlim(limits)ax.set_ylim(0,1)ax.spines['top'].set_position(('axes', 0.6))#ax.xaxis.tick_top()ax.xaxis.set_ticks_position('top')ax.yaxis.set_visible(False)for pos in ["bottom", "left", "right"]: ax.spines[pos].set_visible(False)# CD barax.plot([limits[0],limits[0]-cd], [.9,.9], color="k")ax.plot([limits[0],limits[0]], [.9-0.03,.9+0.03], color="k")ax.plot([limits[0]-cd,limits[0]-cd], [.9-0.03,.9+0.03], color="k") ax.text(limits[0]-cd/2., 0.92, "CD", ha="center", va="bottom")# annotationsbbox_props = dict(box, fc="w", ec="k", lw=0.72)arrowprops=dict(arrow,connection)kw = dict(xycoords='data',textcoords="axes fraction", arrowprops=arrowprops, bbox=bbox_props, va="center")ax.annotate("C4.5", xy=(c, 0.6), xytext=(0,0.25),ha="right", **kw)ax.annotate("C4.5+cf", xy=(ccf, 0.6), xytext=(0,0),ha="right", **kw)ax.annotate("C4.5+m+cf", xy=(cmcf, 0.6), xytext=(1.,0.25),ha="left", **kw)ax.annotate("C4.5+m", xy=(cm, 0.6), xytext=(1.,0),ha="left", **kw)#barsax.plot([ccf,c],[0.55,0.55], color="k", lw=3)ax.plot([ccf,cmcf],[0.48,0.48], color="k", lw=3)plt.show()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)