【问题标题】: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()
    

    【讨论】:

    • 关闭,但颜色是基于分类的,而不是连续值。
    • 你的c是数组数值,还是文字标签?
    • 它们是文本标签。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2015-07-30
    • 2023-03-08
    • 1970-01-01
    • 2012-02-23
    相关资源
    最近更新 更多