matplotlib scatter参数
时间: 2025-03-12 19:20:01 浏览: 67
### Matplotlib Scatter 函数参数详解
#### 基本功能描述
`scatter()` 函数用于绘制散点图,能够自定义多个属性来调整图表样式。除了基本的数据输入 `x` 和 `y` 外,还提供了丰富的可选参数以增强图形的表现力[^2]。
#### 关键参数说明
- **s**: 控制每个点大小,默认单位为平方英寸。可以通过传递单一数值使所有点保持相同尺寸;也可以传入数组让不同点显示不同的大小。
```python
plt.scatter(x, y, s=[50, 100, 150])
```
- **c**: 定义颜色或者色彩映射表(colormap)。接受单个颜色字符串、RGB元组列表或是表示颜色强度的一维浮点数序列。当提供的是数值型数据时,需配合 colormap 使用以便自动映射至对应的颜色范围。
```python
colors = ['red', 'green', 'blue']
plt.scatter(x, y, c=colors)
values = [0.3, 0.7, 0.9]
plt.scatter(x, y, c=values, cmap='viridis')
```
- **marker**: 设置散点形状,支持多种预设符号如圆圈 (`o`)、星形 (`*`) 等,亦可通过 Unicode 字符指定特殊图标。
```python
markers = ['o', '*', '^']
for i, marker in enumerate(markers):
plt.scatter([i], [i], marker=marker)
```
- **alpha**: 调节透明度级别,取值区间为 `[0, 1]` ,其中 `0` 表示完全透明而 `1` 则意味着不透明。
```python
alphas = [0.2, 0.6, 1.0]
for alpha in alphas:
plt.scatter([alpha * 10], [alpha * 10], alpha=alpha)
```
- **label**: 提供标签文本,在创建图例时非常有用。
```python
labels = ["Point A", "Point B"]
for label in labels:
plt.scatter([], [], label=label)
plt.legend()
```
#### 实际应用案例展示
下面是一个综合运用上述参数的例子:
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建随机分布的数据集
np.random.seed(42)
x = np.random.rand(50)
y = np.random.rand(50)
sizes = np.random.randint(10, 200, size=(len(x)))
colors = np.random.rand(len(x))
plt.figure(figsize=(8, 6))
plt.scatter(
x,
y,
s=sizes, # 不同大小的点
c=colors, # 颜色渐变效果
alpha=0.6, # 半透明处理
edgecolors='w', # 白边框突出重点
linewidth=2 # 边线宽度设定
)
plt.colorbar(label="Color Intensity") # 添加颜色条并标注含义
plt.title("Scatter Plot with Customized Parameters")
plt.xlabel("X Axis Label")
plt.ylabel("Y Axis Label")
plt.show()
```
此代码片段展示了如何利用 `scatter()` 的各项特性构建一个视觉上更具吸引力且信息量更大的散点图[^3]。
阅读全文
相关推荐


















