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

具有可变标记颜色和大小的Python散点图,以及图例,python,matplotlib,scatter-plot,seaborn,Python,Matplotlib,Scatter Plot,Seaborn,我想从x和y创建具有以下功能的散点图: 标记大小变量(根据 对应于一对(x,y)) 标记颜色变量(根据对应于对(x,y)的c类) 包括一个图例,显示c的不同值以及它们与颜色的匹配方式 我已经找到了许多关于如何结合这三个要求中的两个的答案。但是,我还没有看到它们都在seaborn和matplotlib上联合实现。 使用skwarg将标记大小设置为ax.scatter 使用ckwarg将标记颜色设置为ax.scatter 您可以添加一个colorbar,以显示颜色如何映射到c数组 例如: im

我想从x和y创建具有以下功能的散点图:

  • 标记大小变量(根据 对应于一对(x,y))
  • 标记颜色变量(根据对应于对(x,y)的c类)
  • 包括一个图例,显示c的不同值以及它们与颜色的匹配方式
我已经找到了许多关于如何结合这三个要求中的两个的答案。但是,我还没有看到它们都在seaborn和matplotlib上联合实现。

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

关闭,但颜色是分类的,不是连续的值。您的
c
数组是数值还是文本标签?它们是文本标签。