python在一张图上画多个线条

python 在一张图上画多个roc ptyon在一张图上添加图例 python将多个roc曲线画到一张图上


说明

我写了一个画图函数,这个函数可以画很多图在一个图上: 可以自由的确定画图个数

调用

  ## 定义方法
mothed1='xgb'
mothed2='svm'
mothed3='rf'

name = 'mouse'
## 定义数据
.....
plt_roc(name,(mothed1,y_predicted1, y_test1), (mothed2,y_predicted2, y_test2),(mothed3,y_predicted3, y_test3))

# name 是title 也就是标题
# (motehd 图例名字,y_predicted 预测的正scores, y_test 也就是ytrue),

plt_roc画图函数代码

from sklearn import metrics
import pylab as plt
import numpy as np
def plt_roc(name,*args):
    Font = {'size': 18, 'family': 'Times New Roman'}
    color_list = ['r','k','b','y','c','g','m']  ## 颜色限制 !!!
    plt.figure(figsize=(6, 6))

    print(int(len(args[0])/2))
    for i in range(0,len(args)):
        print(i)
        label = args[i][2]
        y_predicted = args[i][1]
        fpr1, tpr1, thres1 = metrics.roc_curve(label, y_predicted)
        roc_auc = metrics.auc(fpr1, tpr1)
        print(roc_auc)
        label = args[i][0] + '=' + '%0.3f' % roc_auc
        plt.plot(fpr1, tpr1, 'b', label=label, color=color_list[i])


    plt.legend(loc='lower right', prop=Font) # 图例
    plt.plot([0, 1], [0, 1], 'r--')
    plt.xlim([0, 1])
    plt.ylim([0, 1])
    plt.ylabel('True Positive Rate', Font)
    plt.xlabel('False Positive Rate', Font)
    plt.tick_params(labelsize=15)
    plt.title(name.upper())
    plt.show()
    return 0

结果:

暂时先不发图

你可能感兴趣的:(python,python,开发语言,后端)