在同一张图中分别绘制两张散点子图python
时间: 2024-03-10 10:47:05 浏览: 33
在 Python 中,使用 Matplotlib 库可以在同一张图中分别绘制两张散点图。以下是一个简单的示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成一些随机数据
x1 = np.random.rand(50)
y1 = np.random.rand(50)
x2 = np.random.rand(50)
y2 = np.random.rand(50)
# 创建画布,并分割成 1 行 2 列的子图
fig, ax = plt.subplots(1, 2)
# 在第一个子图中绘制散点图
ax[0].scatter(x1, y1, color='red')
ax[0].set_title('Group 1')
# 在第二个子图中绘制散点图
ax[1].scatter(x2, y2, color='blue')
ax[1].set_title('Group 2')
# 显示图形
plt.show()
```
这段代码生成了两组随机数据,并使用 `plt.subplots()` 函数创建了一个包含 1 行 2 列的画布。接着,在第一个子图中使用 `ax[0].scatter()` 函数绘制了一个散点图,并使用 `ax[0].set_title()` 函数添加了一个标题。在第二个子图中也使用类似的方式绘制了另一个散点图。最后使用 `plt.show()` 函数显示了图形。运行代码后会生成一个包含两个散点图的图形。
相关问题
使用Python对不同模型绘制ROC曲线画在同一张图中
好的,可以使用Python中的`matplotlib`和`scikit-learn`库来绘制ROC曲线并画在同一张图中。
首先,我们需要导入需要的库和模型数据:
```python
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 模型1的预测结果,包括预测标签和预测概率
y_pred_1 = ...
y_score_1 = ...
# 模型2的预测结果,包括预测标签和预测概率
y_pred_2 = ...
y_score_2 = ...
# 真实标签
y_true = ...
```
接着,我们可以使用`roc_curve`函数计算每个模型的FPR和TPR:
```python
# 计算模型1的FPR和TPR
fpr_1, tpr_1, _ = roc_curve(y_true, y_score_1)
# 计算模型2的FPR和TPR
fpr_2, tpr_2, _ = roc_curve(y_true, y_score_2)
```
然后,我们可以使用`auc`函数计算每个模型的AUC:
```python
# 计算模型1的AUC
roc_auc_1 = auc(fpr_1, tpr_1)
# 计算模型2的AUC
roc_auc_2 = auc(fpr_2, tpr_2)
```
最后,我们可以将两个模型的ROC曲线画在同一张图中:
```python
# 绘制ROC曲线
plt.figure()
plt.plot(fpr_1, tpr_1, color='darkorange', lw=2, label='Model 1 (AUC = %0.2f)' % roc_auc_1)
plt.plot(fpr_2, tpr_2, color='green', lw=2, label='Model 2 (AUC = %0.2f)' % roc_auc_2)
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')
plt.legend(loc="lower right")
plt.show()
```
这样,就可以绘制出两个模型的ROC曲线,并将它们画在同一张图中了。
分组在同一张图中绘制抖动点
在同一张图中绘制抖动点的方法,可以使用Matplotlib库中的scatter函数。scatter函数可以绘制散点图,其中的参数可以指定每个点的坐标、大小、颜色等属性。
对于分组数据,可以通过给每个组的点赋予不同的颜色或大小来区分。抖动可以通过在每个点的横坐标上添加一些随机偏移量来实现。
以下是一个简单的示例代码,其中有两个组的数据,每个组有10个点,这些点被绘制在同一张图中,每个点的横坐标上都会添加一些随机偏移量以实现抖动效果。
```python
import numpy as np
import matplotlib.pyplot as plt
# 生成两个组的数据
group1 = np.random.normal(0, 1, 10)
group2 = np.random.normal(2, 1, 10)
# 给每个点添加一些随机偏移量
jitter1 = np.random.normal(0, 0.1, 10)
jitter2 = np.random.normal(0, 0.1, 10)
# 绘制散点图,并指定每个点的大小和颜色
plt.scatter(group1+jitter1, [0]*10, s=50, color='blue')
plt.scatter(group2+jitter2, [1]*10, s=50, color='red')
plt.show()
```
运行这段代码,可以得到一张包含两个组的抖动点散点图,每个点的大小和颜色都已经区分开来。