为什么我使用 matplotlib.pyplot(plt) lib 来显示一些点,但它不能显示点之间的线

Why I use matplotlib.pyplot(plt) lib to show some points but it cannot show line between the points

我这部分代码有一个for循环,每一步都可以生成新的tpr(as X), fpr(as Y)这样的

0.05263157894736842 0.1896551724137931
0.06578947368421052 0.19540229885057472
0.07894736842105263 0.22988505747126436
0.07894736842105263 0.25862068965517243
0.07894736842105263 0.28735632183908044

我想收集所有这些点并得到一个完整的情节,但它没有用。我的代码附在下面

for i in range (-30,20):
    predicted = (np.sign(t+i*1e-4)+1)/2.
    vals, cm = re.get_CM_vals(y_test, predicted)
    tpr = re.TPR_CM(cm)
    fpr = re.FPR_CM(cm)
    #print(tpr, fpr)
    plt.plot(fpr, tpr,'b.-',linewidth=1)
plt.show()

此外,我想要像 that.is 这样的点之间的直角线在 matplotlib 中有一个函数?

使用您当前的代码,我建议将 x 值添加到一个数组,将 y 值添加到另一个数组。您也可以使用类似的东西:ArrayName = [[],[]],然后将 x 和 y 值分别附加到 ArrayName[0]ArrayName[1]。这不仅会实际工作,而且会稍微快一些,因为 plt.plotplt.scatter 函数可以更快地一次绘制所有点而不是通过 for 循环。

如果你不想画线连接的点,我仍然建议使用数组,因为这样会更快。 (在这种情况下不会快很多,但这是一个好习惯。