Почему я использую matplotlib.pyplot (plt) lib, чтобы показать некоторые точки, но он не может показать линию между точками - PullRequest
0 голосов
/ 22 января 2020

В моей части кода есть for-l oop, и на каждом шаге он может генерировать новые tpr (как X), fpr (как 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()

enter image description here

Кроме того, я хочу, чтобы прямая угловая линия между точками, как это. Это весело c в матплотлиб? enter image description here

1 Ответ

2 голосов
/ 22 января 2020

Используя ваш текущий код, я предлагаю добавить значения x в массив и значения y в другой массив. Вы также можете использовать что-то вроде: ArrayName = [[],[]], а затем добавить значения x и y к ArrayName[0] и ArrayName[1] соответственно. Мало того, что это на самом деле работает, но это будет немного быстрее, поскольку функции plt.plot и plt.scatter работают быстрее, рисуя все точки одновременно, а не через a для l oop.

Если вы не хотите наносить точки, связанные линиями, я все же предлагаю использовать массив, так как это будет быстрее. (В этом случае это не будет намного быстрее, но это хорошая привычка.

...