【问题标题】:Python scatterplot with variable marker color and size, plus a legend具有可变标记颜色和大小的 Python 散点图,以及图例
【发布时间】:2017-05-25 01:52:36
【问题描述】:
我想从 x 和 y 创建具有以下特征的散点图:
- 标记大小变量(根据值 z 表示
对应对 (x,y))
- 标记颜色变量(根据与 (x,y) 对对应的类别 c)
- 包括一个说明 c 的不同值以及它们如何与颜色匹配的图例
我找到了很多关于如何结合这 3 个要求中的 2 个的答案。但是,我还没有看到它们全部联合实施,无论是在 seaborn 还是在 matplotlib 上。
【问题讨论】:
标签:
python
matplotlib
scatter-plot
seaborn
【解决方案1】:
您使用s kwarg 将标记大小设置为ax.scatter。
您使用c kwarg 将标记颜色设置为ax.scatter。
您可以添加colorbar 以显示颜色如何映射到c 数组。
例如:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1)
# Some fake data
X, Y = np.meshgrid(np.arange(0.5, 10), np.arange(0.5, 10))
X = X.flatten()
Y = Y.flatten()
c = np.random.rand(X.size)
z = np.random.rand(X.size)*100
# Plot using scatter. Color use 'c' kwarg. Set size using 's' kwarg.
p = ax.scatter(X, Y, c=c, s=z, cmap='viridis', vmin=0, vmax=1)
# Add a colorbar
fig.colorbar(p)
plt.show()