我试图在一个范围为[-0.2,1.4]和[-0.2,1.4]的情节上绘制四个彩色象限 . 问题是我在尝试使用plt.axvspan排列象限的y轴坐标时遇到问题:
roc_t = 0.43652219
roc_v = 0.82251961
plt.figure()
plt.figure(figsize=(15,12))
plt.xlim(-0.2,1.4)
plt.ylim(-0.2,1.4)
plt.scatter([nTPredict], [nVPredict], color = 'red', marker='X', s=500)
plt.plot([T_Cutoff,T_Cutoff],[-0.2,1.4],color = 'black',linestyle='dashed',lw=2)
plt.plot([1.4,-0.2],[(V_Cutoff),(V_Cutoff)],color = 'black',linestyle='dashed',lw=2)
plt.axvspan(-0.2, roc_t, 0, roc_v, alpha=0.3, color='#1F98D0')#blue
plt.axvspan(roc_t, 1.4, 0, roc_v, alpha=0.3, color='#F9D307')#yellow
plt.axvspan(-0.2, roc_t, roc_v, 1, alpha=0.3, color='#F38D25')#orange
plt.axvspan(roc_t, 1.4, roc_v, 1, alpha=0.3, color='#DA383D')#red
plt.show()
plt.close()
哪个产生了这个:
因此,顶行和底行应该以roc_v结束/开始(由水平虚线表示) . 据我所知,在plt.axvspan中,ymin和ymax是[0,1]的相对比例,但我无法弄清楚如何使象限与水平虚线对齐 .
我如何计算ymin和ymax的roc_v值 . 我已经尝试过(roc_v * 1.6)但我认为这是合乎逻辑的答案,但这仍然没有排成一行 . 否则,我可以用另一种方式绘制这些背景象限吗?
1 回答
虽然's probably doable messing around with transforms, I think you'可能比
axvspan
更有运气 . 我建议fill_between, where the limits are simply provided in Data coordinates .PS:对于你的虚线,你可能想看看axvline()和axhline(),这是专门为此目的而制作的 .