plt.scatter(X[:,0],X[:,1],c = y, alpha=.4) plt.legend(np.unique(y)) 只显示1个图例
时间: 2024-02-19 22:58:18 浏览: 33
这是因为 `plt.legend()` 函数只有一个参数 `np.unique(y)`,它返回的是 y 数组中所有唯一值的列表。因此,`plt.legend()` 只会显示一个图例,即 y 数组中所有唯一值的列表。
如果想要为每个唯一的 y 值都显示一个图例,可以使用循环来逐个添加图例。例如:
```python
import matplotlib.pyplot as plt
import numpy as np
X = np.random.randn(100, 2)
y = np.random.randint(0, 3, 100)
for label in np.unique(y):
plt.scatter(X[:, 0][y == label], X[:, 1][y == label], label=label, alpha=0.4)
plt.legend()
plt.show()
```
这段代码会为每个唯一的 y 值都添加一个图例。其中,`np.unique(y)` 返回的是 y 数组中所有唯一值的列表,循环中的 `label` 变量依次取值于该列表中的每个值。在 `plt.scatter()` 函数中,我们使用 `label` 参数来指定当前点的图例标签,这样每个唯一的 y 值都对应一个图例标签。最后,我们使用 `plt.legend()` 函数来添加图例,它会自动将所有指定的标签添加到图例中。
相关问题
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="winter", label=label9) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="gnuplot2", label=label5) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="hot", label=label6) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="autumn", label=label7) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="terrain", label=label8) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="Oranges", label=label1) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="tab20b", label=label2) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="cool", label=label4) plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="rainbow", label=label3)
您想要绘制多个散点图,每个散点图使用不同的颜色映射。您可以按照以下代码进行绘制:
```python
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="winter", label=label9)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="gnuplot2", label=label5)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="hot", label=label6)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="autumn", label=label7)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="terrain", label=label8)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="Oranges", label=label1)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="tab20b", label=label2)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="cool", label=label4)
plt.scatter(X_pca[:, 0], X_pca[:, 1], marker='o', s=100, c=kpredictions, alpha=1, cmap="rainbow", label=label3)
plt.legend()
plt.show()
```
这段代码会按照您指定的不同颜色映射绘制多个散点图,并在图例中显示相应的标签。
plt.scatter()中散点属性设置
plt.scatter()是Matplotlib库中用于绘制散点图的函数。它可以接受多个参数来设置散点的属性,下面是一些常用的属性设置:
1. x, y:散点的横坐标和纵坐标数据,可以是列表、数组或者Series类型的数据。
2. s:散点的大小,可以是一个标量值或者与x、y长度相同的数组。默认值为20。
3. c:散点的颜色,可以是一个颜色字符串(如'red'、'blue')或者与x、y长度相同的数组。默认值为None,表示使用默认颜色。
4. marker:散点的标记样式,可以是一个标记字符串(如'o'、'+'、'x')或者与x、y长度相同的数组。默认值为'o'。
5. alpha:散点的透明度,取值范围为0到1之间。默认值为1,表示完全不透明。
6. edgecolors:散点边缘的颜色,可以是一个颜色字符串或者与x、y长度相同的数组。默认值为'face',表示使用与散点颜色相同的边缘颜色。
7. linewidths:散点边缘的宽度,可以是一个标量值或者与x、y长度相同的数组。默认值为None,表示使用默认宽度。
8. cmap:散点的颜色映射,可以是一个Colormap对象或者一个颜色映射字符串。默认值为None,表示使用默认颜色映射。
9. norm:用于归一化数据的Normalize对象,用于将数据映射到颜色映射的范围内。默认值为None,表示不进行归一化。
10. label:散点的标签,用于图例显示。
下面是一个示例代码,展示了如何使用plt.scatter()函数设置散点的属性:
```python
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.scatter(x, y, s=50, c='red', marker='o', alpha=0.5, edgecolors='black', linewidths=1, cmap='viridis', norm=None, label='data points')
plt.xlabel('x')
plt.ylabel('y')
plt.title('Scatter Plot')
plt.legend()
plt.show()
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)