Basemap绘图中如何用Line2D创建仅含单个标记的自定义图例
解决Basemap自定义图例仅显示标记无连线的问题
你已经找对方向啦!用Line2D创建自定义图例元素的思路完全没问题,要实现只显示标记、隐藏连线的效果,只需要给Line2D添加一个参数:linestyle='None'(也可以简写为ls='None')。
默认情况下,Line2D会自带一条默认样式的线,哪怕你只传入了[0],[0]这一组坐标,底层还是会渲染一条极短的连线。加上linestyle='None'就能彻底禁用连线渲染,只保留你设置的标记样式。
修改后的核心代码如下:
from matplotlib.lines import Line2D import matplotlib.pyplot as plt fig, ax = plt.subplots() legend_elements = [ Line2D([0], [0], marker='o', markersize=10, color='green', linestyle='None', label='Label1'), Line2D([0], [0], marker='s', markersize=12, color='red', linestyle='None', label='Label2') ] ax.legend(handles=legend_elements, loc=2) plt.show()
额外提个小技巧:如果需要区分标记的填充色和边框色,可以分别用markerfacecolor和markeredgecolor参数调整,能让图例样式更贴合你的绘图需求。
内容的提问来源于stack exchange,提问作者Bollehenk
相关产品推荐
相关产品推荐

