【问题标题】:Multiple marks on a legend图例上有多个标记
【发布时间】:2019-09-18 13:47:25
【问题描述】:

我为一些标记创建了一个图例,这些标记是我根据卫星数据绘制在图像中的。我不知道如何为我正在绘制的不同位置设置多个标记。

import matplotlib.patches as mpatches

colors = ["g", "w", "y", "b", "w", "g"]
texts = ["San Luis","Tupungato", "Tierra Alta", "Tokio", "Cordoba","Sierras de Cordoba"]
patches = [plt.plot([],[], marker="o", ms=10, ls="", mec=None, color=colors[i], 
          label="{:s}".format(texts[i]) )[0]  for i in range(len(texts)) ]
plt.legend(handles=patches, bbox_to_anchor=(0.5, 0.5), 
                   loc='center right', ncol=2, facecolor="plum", numpoints=1 )

我想为每个元素使用不同的标记,而不是用圆圈显示所有元素。

【问题讨论】:

    标签: python-3.x legend cartopy legend-properties


    【解决方案1】:

    您需要使用不同的marker 选项指定每个plot()。这是更新后的代码和示例输出图。

    from mpl_toolkits.basemap import Basemap
    import matplotlib.pyplot as plt
    
    colors = ["g", "w", "y", "b", "w", "g"]
    texts = ["San Luis","Tupungato", "Tierra Alta", "Tokio", "Cordoba","Sierras de Cordoba"]
    
    # a list of marker shapes
    markers = ["o", "^", "v", "<", ">", "s"]
    
    patches = [plt.plot([],[], marker=markers[i], ms=10, ls="", mec=None, color=colors[i], 
              label="{:s}".format(texts[i]) )[0]  for i in range(len(texts)) ]
    
    plt.legend(handles=patches, bbox_to_anchor=(1, 1), 
                       loc='upper right', ncol=2, facecolor="plum", numpoints=1 )
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-09
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2014-11-26
    • 2021-02-06
    相关资源
    最近更新 更多