matplotlib scattermarker
时间: 2025-02-20 07:11:35 浏览: 44
### 使用 Matplotlib 中 `scatter` 函数的 Marker 参数
在 Matplotlib 的 `scatter()` 方法中,可以通过设置 `marker` 参数来自定义散点图中标记的样式。标记可以是预定义的字符,也可以是由元组 `(n, style, angle)` 定义的多边形。
#### 预定义标记符
Matplotlib 支持多种内置标记风格,例如圆圈 (`'o'`)、星号 (`'*'`) 和加号 (`'+'`) 等。这些可以直接作为字符串传递给 `marker` 参数[^3]。
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据集
np.random.seed(19680801)
x = np.linspace(0, 10, 30)
# 不同类型的预定义标记
markers = ['o', '*', '+', '.', ',', '^']
for idx, m in enumerate(markers):
y = (idx + 1) * x / len(markers)
plt.scatter(x, y, marker=m, label=f'Marker {m}')
plt.legend()
plt.title('Predefined Markers')
plt.show()
```
#### 自定义多边形标记
对于更复杂的图形需求,可利用三元组形式指定自定义标记。(n, style, angle),其中 n 表示顶点数量;style 控制线条连接方式(如 `'-'`, `'|'` 或者 `'None'`),angle 则用于旋转角度调整[^4]。
```python
fig, ax = plt.subplots()
for i in range(1, 4): # 牙齿数目
for j in range(1, 9): # 形状种类
color_index = j % len(['c', 'b', 'g', 'r'])
ax.scatter(
(10*i),
(j*10),
s=80,
c=['c', 'b', 'g', 'r'][color_index],
marker=(j, i),
label=f'Shape ({j},{i})'
)
ax.set_title('Custom Polygon Markers')
ax.legend(bbox_to_anchor=(1.05, 1))
plt.tight_layout()
plt.show()
```
阅读全文
相关推荐












