【问题标题】:Combine two matplotlib markers into one in legend在图例中将两个 matplotlib 标记合二为一
【发布时间】:2020-11-15 05:11:09
【问题描述】:

为了有一个自定义标记,我制作了两个具有相同数据点但标记不同的散点图。因此,通过在另一个标记上绘制一个标记,我得到了一个新的自定义标记的外观。现在我想在传说中使用它。有没有一种方法可以在图例中使用两个标记,一个在另一个之上,并将它们显示为一个标记。

编辑: 问题不在于如何为两个不同的标记共享相同的标签,而是如何在图例中将一个标记绘制在另一个标记之上

【问题讨论】:

标签: python matplotlib plot legend


【解决方案1】:

使用标记元组回答问题;


    from numpy.random import randn
    m=np.random.uniform(size=10)
    x=np.arange(0,10,1)
    y=x**2
    fig, ax = plt.subplots(1,1)
    
    blue_dot = ax.scatter(x[:5],y[:5], s=m*100, color='b')

    red_dot = ax.scatter(x[5:],y[5:], s=200*m, color='r')
    black_cross = ax.scatter(x[5:],y[5:], s=400*m, marker='+', color='k')
    
    lgnd = ax.legend([blue_dot, (red_dot, black_cross)], ["Blue Circle", "Red Circle and Black Cross"])

现在我想更改图例中标记的大小,使所有标记的大小相同。为此,我尝试将其添加到上面的代码中。

lgnd.legendHandles[0]._sizes = [200]
lgnd.legendHandles[1]._sizes = [200] # this is affecting the size of red_dot only

如何更改图例中 black_cross 的大小?

【讨论】:

    猜你喜欢
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 2011-09-03
    相关资源
    最近更新 更多