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

时间:2017-01-10 14:23:36

标签: python matplotlib scatter-plot seaborn

我想使用以下功能从x和y创建散点图:

  • 标记大小变量(根据值z表示 对应于对(x,y))
  • 标记颜色变量(根据对应于对(x,y)的类别c)
  • 包含一个图例,其中显示了c的不同值以及它们与颜色的匹配方式

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

1 个答案:

答案 0 :(得分:2)

  • 您可以使用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()

enter image description here