plot接受y值并使用x作为索引数组
0..N-1或如文档中所述使用x和y值。所以你可以使用
p5 = axScatter.plot((0, 1), "r--")
在代码中绘制线条。
但是,您要求“好的做法”。以下代码(希望如此)显示了一些“良好实践”以及matplotlib创建您在问题中提到的绘图的一些功能。
import numpy as npimport matplotlib.pyplot as plt# create some dataxy = np.random.rand(4, 2)xy_line = (0, 1)# set up figure and axfig, ax = plt.subplots(figsize=(8,8))# create the scatter plotsax.scatter(xy[:, 0], xy[:, 1], c='blue')for point, name in zip(xy, 'ABCD'): ax.annotate(name, xy=point, xytext=(0, -10), textcoords='offset points', color='blue', ha='center', va='center')ax.scatter([0], [1], c='black', s=60)ax.annotate('Perfect Classification', xy=(0, 1), xytext=(0.1, 0.9), arrowprops=dict(arrowstyle='->'))# create the lineax.plot(xy_line, 'r--', label='Random guess')ax.annotate('Better', xy=(0.3, 0.3), xytext=(0.2, 0.4), arrowprops=dict(arrowstyle='<-'), ha='center', va='center')ax.annotate('Worse', xy=(0.3, 0.3), xytext=(0.4, 0.2), arrowprops=dict(arrowstyle='<-'), ha='center', va='center')# add labels, legend and make it nicerax.set_xlabel('FPR or (1 - specificity)')ax.set_ylabel('TPR or sensitivity')ax.set_title('ROC Space')ax.set_xlim(0, 1)ax.set_ylim(0, 1)ax.legend()plt.tight_layout()plt.savefig('scatter_line.png', dpi=80)顺便说一句:我认为matplotlibs文档现在非常有用。



