用matplotlib将数据的PDF和CDF放在同一张图里面,并画出包络线

先放出最终的图:

左边是分布直方图,右边是累积概率分布图,黑色的是CDF的包络线

实现步骤如下:

步骤一:将原来的直方图表示成左边这种只显示折线的形式:

首先我们需要实现分布直方图,使用函数plt.hist()

z1=plt.hist(list(my_DF["最短路径的长度"]), 30,  normed=1,color="red",alpha=0.75,histtype='step',label="PDF")

代码中的参数分别代表如下的意义:

list(my_DF["最短路径的长度"])是我的数据,

30表示将数据分成30组,

normed=1表示纵轴是概率,如果该参数为False,表示纵轴是频数

color="red"表示线条的颜色

alpha=0.75表示线条颜色的透明程度,alpha越小表示颜色越淡

histtype='step'表示将直方柱并在一起,除边界外颜色透明

label="PDF"表示标签

如果我们不设置参数histtype='ste

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将不同数据用logistic模型绘制的ROC曲线放在一张中,我们需要按照以下步骤进行: 1. 导入需要使用的库和数据 2. 将数据分为训练集和测试集 3. 对训练集进行特征选择和数据预处理 4. 使用训练集训练logistic模型 5. 对测试集进行预测并计算ROC曲线 6. 将不同数据的ROC曲线绘制在同一张中 以下是一个示例代码,展示如何绘制不同数据用logistic模型绘制的ROC曲线放在一张中。 ```python import pandas as pd from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import roc_curve, auc import matplotlib.pyplot as plt # 导入数据 data1 = pd.read_csv('data1.csv') data2 = pd.read_csv('data2.csv') # 将数据分为训练集和测试集 X_train1, X_test1, y_train1, y_test1 = train_test_split(data1.drop('label', axis=1), data1['label'], test_size=0.3, random_state=0) X_train2, X_test2, y_train2, y_test2 = train_test_split(data2.drop('label', axis=1), data2['label'], test_size=0.3, random_state=0) # 对训练集进行特征选择和数据预处理 # ... # 使用训练集训练logistic模型 model1 = LogisticRegression() model1.fit(X_train1, y_train1) model2 = LogisticRegression() model2.fit(X_train2, y_train2) # 对测试集进行预测并计算ROC曲线 fpr1, tpr1, _ = roc_curve(y_test1, model1.predict_proba(X_test1)[:, 1]) roc_auc1 = auc(fpr1, tpr1) fpr2, tpr2, _ = roc_curve(y_test2, model2.predict_proba(X_test2)[:, 1]) roc_auc2 = auc(fpr2, tpr2) # 将不同数据的ROC曲线绘制在同一张中 plt.figure() plt.plot(fpr1, tpr1, color='darkorange', lw=2, label='Data 1 ROC curve (area = %0.2f)' % roc_auc1) plt.plot(fpr2, tpr2, color='blue', lw=2, label='Data 2 ROC curve (area = %0.2f)' % roc_auc2) plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic example') plt.legend(loc="lower right") plt.show() ``` 这将绘制两个ROC曲线,其中每个曲线都有一个标签,然后我们添加例,设置横轴和纵轴标签,以及表标题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skj1995

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值