如何解决matplotlib:带有 mode="expand" 问题的图例
我在定义 fig.legend() 时尝试使用 mode="expand"。
我希望它扩展到我使用 ax.get_position() 检索的 xaxis 范围。
我有两个问题:
- 它在 LHS 上正确对齐,但由于某种原因它在 RHS 上超调。
- 图例的“上中心”与我的 4 元组 bbox 的上中心不对齐。我必须手动捏造数字才能做到这一点。
见下面的代码。 (Matplotlib 3.1.0;Python 3.7;Numpy 1.16.4)
import matplotlib
import numpy as np
fig,ax = plt.subplots()
x = np.linspace(-2*np.pi,2*np.pi,100)
ax.plot(x,np.sin(x),label='sine')
ax.plot(x,np.cos(x),label='cos')
ax.plot(x,np.arctan(x),label='arctan')
axbox = ax.get_position()
fig.legend(loc='upper center',bbox_to_anchor=(axbox.x0,axbox.y0,axbox.x1,axbox.y0),bbox_transform=fig.transFigure,ncol=3,title='fig leg 3 expand',prop={'size': 'medium'},borderaxespad=0,mode="expand",)
解决方法
在这种情况下,我认为我们可以更改对轴的变换参考并将 xy 值设置为 0 到 1 的范围。这是否符合您的意图,我不确定 LHS 和 RHS。
fig.legend(loc='upper center',bbox_to_anchor=(0,1,0.15),bbox_transform=ax.transAxes,ncol=3,title='fig leg 3 expand',prop={'size': 'medium'},borderaxespad=0,mode='expand',)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。