Beyond Birthday 2022-12-17 11:42 采纳率: 25%
浏览 25

scikitplot.metrics下的plot_roc_curve方法进行ROC曲线作图时如何做出一左一右两个子图的形式

我在调用scikitplot.metrics下的plot_roc_curve方法进行ROC曲线作图时,发现这个作图函数好像不能配合plt里的subplot方法进行子图分图的处理

from scikitplot.metrics import plot_roc_curve as auc_roc
plt.rc('figure', figsize=(10,5))
ax1=plt.subplot(1,2,1)
ax2=plt.subplot(1,2,2)
plt.sca(ax1)
auc_roc(y_test, mnb1.predict_proba(X_test), curves=['each_class']);
plt.title('text Native Bayes ROC curves');
plt.sca(ax2)
auc_roc(y_test, mnb2.predict_proba(X_se_test), curves=['each_class']);
plt.title('selected_text Native Bayes ROC curves');

img

如图所示,感觉plot_roc_curve这个作图完全独立于那两个子图一样,所以想请教一下,这种情况下可以怎么作图使得这两个ROC曲线图能够一左一右地呈现出来呢?
像下图中这种形式,我下图就是用plt来做子图划分的

img

https://img-mid.csdnimg.cn/release/static/image/mid/ask/153804842176182.png "#left")

  • 写回答

2条回答 默认 最新

  • ShowMeAI 2022-12-17 12:46
    关注

    望采纳。


    对,scikitplot的plot_roc_curve函数默认是直接在当前的图上绘制ROC曲线的,而不是返回一个可以用于在其他图中绘制的对象。

    如果你希望使用subplot进行分图,可以使用scikit-learn提供的roc_curve函数计算出ROC曲线的真正率和假正率的值,然后使用matplotlib的plot函数绘制ROC曲线。如下例:

    from sklearn.metrics import roc_curve
    
    # 计算真正率和假正率
    fpr, tpr, _ = roc_curve(y_test, mnb1.predict_proba(X_test)[:, 1])
    
    # 在第一个子图中绘制ROC曲线
    ax1 = plt.subplot(1, 2, 1)
    plt.plot(fpr, tpr)
    plt.title('text Native Bayes ROC curve')
    
    # 在第二个子图中绘制ROC曲线
    fpr, tpr, _ = roc_curve(y_test, mnb2.predict_proba(X_se_test)[:, 1])
    ax2 = plt.subplot(1, 2, 2)
    plt.plot(fpr, tpr)
    plt.title('selected_text Native Bayes ROC curve')
    

    如果你想要绘制多条ROC曲线,可以在一张图中使用多条线来表示不同的类别。例如:

    fpr, tpr, _ = roc_curve(y_test, mnb1.predict_proba(X_test))
    plt.plot(fpr, tpr, label='class 1')
    fpr, tpr, _ = roc_curve(y_test, mnb2.predict_proba(X_se_test))
    plt.plot(fpr, tpr, label='class 2')
    plt.legend()
    
    评论

报告相同问题?

问题事件

  • 创建了问题 12月17日

悬赏问题

  • ¥15 vs2019的js智能提示
  • ¥15 关于#开发语言#的问题:FDTD建模问题图中代码没有报错,但是模型却变透明了
  • ¥15 uniapp的h5项目写一个抽奖动画
  • ¥15 TeleScan不能修改bar
  • ¥100 请问我基于逐飞库写的这个有关于mp u6050传感器的函数,为什么输出的值是固定的?
  • ¥15 hadoop中启动hive报错如下怎么解决
  • ¥15 如何优化QWebEngineView 加载url的速度
  • ¥15 关于#hadoop#的问题,请各位专家解答!
  • ¥15 如何批量抓取网站信息
  • ¥15 Spring Boot离线人脸识别