### 如何在 Python 中设置散点图的标记形状
#### 使用 Matplotlib 设置散点图标记形状
Matplotlib 提供了多种参数来定制散点图中的标记样式。`marker` 参数用于指定散点图中标记的形状。
```python
import matplotlib.pyplot as plt
# 创建数据
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
# 不同类型的标记形状
markers = ['o', 's', '^', 'v', '<', '>', '8', 'p', '*', 'h', 'H', '+', 'x', 'D', 'd']
plt.figure(figsize=(10, 6))
for i, marker in enumerate(markers):
plt.scatter([i % 5], [i // 5], marker=marker, s=100, label=f'Marker {marker}')
plt.legend()
plt.title('Different Marker Shapes')
plt.axis('equal')
plt.show()
```
上述代码展示了不同 `marker` 值的效果,包括圆形 (`'o'`)、正方形 (`'s'`)、三角形 (`'^'`, `'v'`, etc.) 等各种形状[^2]。
#### 使用 Seaborn 设置散点图标记形状
Seaborn 是基于 Matplotlib 的高级接口,提供了更简洁的数据可视化方法。同样可以通过 `marker` 参数自定义散点图的标记形状。
```python
import seaborn as sns
import pandas as pd
# 构建样本 DataFrame
data = {
"x": [1, 2, 3, 4, 5],
"y": [2, 3, 5, 7, 11],
"group": ["A", "B", "C", "D", "E"]
}
df = pd.DataFrame(data)
sns.set(style="whitegrid")
# 绘制带有不同标记的散点图
g = sns.relplot(
data=df,
x="x",
y="y",
hue="group",
style="group",
markers=["o", "s", "^", "v", "<"],
kind="scatter"
)
g.fig.suptitle('Scatter Plot with Different Markers Using Seaborn')
plt.show()
```
这段代码创建了一个包含多个分组的数据集,并通过不同的标记区分各个分组。这里使用了 `hue` 和 `style` 参数配合 `markers` 列表实现多样化的视觉效果。