具有可变标记颜色和大小以及图例的 Python 散点图

S L*_*eon -2 python matplotlib scatter-plot seaborn

我想从 x 和 y 创建一个散点图,具有以下特征:

  • 标记大小变量(根据对应于 (x,y) 对的值 z)
  • 标记颜色变量(根据对应于 (x,y) 对的类别 c)
  • 包括显示 c 的不同值以及它们如何与颜色匹配的图例

关于如何将这 3 个要求中的 2 个结合起来,我找到了很多答案。但是,我还没有看到它们全部联合实施,无论是在 seaborn 还是在 matplotlib 上。

tmd*_*son 6

  • 您使用skwarg将标记大小设置为ax.scatter.

  • 您使用ckwarg将标记颜色设置为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()
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明