我正在尝试使用matplotlib制作自动绘图,其中几个不同的特征相互叠加(背景是填充的等高线图,上面一个是pcolormesh)。我试图绘制的最顶层的特征是几个散点图,带有不同的标签和图标。
我尝试在此图中添加图例,目前使用以下命令:
leg = ax.legend(legplots,
legnames,
scatterpoints=1,
loc='upper center',
ncol=3,
fontsize=14,
bbox_to_anchor=(0.5, -0.14),
fancybox=True, shadow=True)
假设ax是主轴,腿图和legnames分别是散点图及其适当标签的列表。
添加图例可以正常工作,但由于我拥有的腿图数量(及其名称长度)不同,因此在绘制图表动画时,图例会增大和缩小。如何控制图例框的大小和图例中的列宽?这可能吗?
答案 0 :(得分:0)
目前您的边界框的大小为0,因为您只指定其位置((0.5, -0.14)
)。
您可以将图例的边界框设置为大于0,并且也足够大,以满足最大数量的元素所需的最大尺寸。我认为您需要通过以下方式找到该尺寸的大小。反复试验。
所以使用完整的4元组符号
bbox_to_anchor=(x0, y0, width, height)
结合适当的loc
参数和关键字参数mode="expand"
,您可以根据需要制作足够大的图例。有关4元组表示法的更详细说明,请参阅this post并查看legend location guide。