【问题标题】:Give a individual zorder value to every marker in a matplotlib scatter plot为 matplotlib 散点图中的每个标记提供单独的 zorder 值
【发布时间】:2019-09-19 14:43:35
【问题描述】:

我有一个带有许多标记的 matplotlib 散点图:

plt.scatter(x_position,y_position,c=z_position,s=90, cmap=cm.bwr,linewidth=1,edgecolor='k')

有时标记重叠。我希望每个的 zorder 基于单个标记的 z_position。

这是否可以在散点图中实现,或者我是否必须为每个具有自己 zorder 值的数据点设置一条单独的线?

谢谢。

【问题讨论】:

    标签: python matplotlib z-order


    【解决方案1】:
    import numpy as np
    import matplotlib.pyplot as plt
    
    
    x = np.array([0,1,0,1])
    y = np.array([0,0,1,1])
    z = np.array([8,4,6,2])
    

    如果你现在打电话

    plt.scatter(x, y, c=z, s=1000, marker="X", 
                cmap=plt.cm.bwr, linewidth=1, edgecolor='k')
    

    标记重叠:

    数组中的最后一个标记最后绘制,因此 z=2 的标记在前面。

    您可以按 z 对数组进行排序以更改出现顺序。

    order = np.argsort(z)
    plt.scatter(x[order], y[order], c=z[order], s=1000, marker="X", 
                cmap=plt.cm.bwr, linewidth=1, edgecolor='k')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-06
      • 2017-12-13
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2011-09-24
      相关资源
      最近更新 更多