python - 如何将`bbox_to_anchor`的前两个参数设置为左上坐标?
问题描述
在matplotlib
中,我想绘制一个图例,并将图例放在图下方。所以我写这样的代码:
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(5, 7), dpi=300)
ax = fig.add_subplot(111, position=[0.1, 0.28, 0.8, 0.65])
labels = []
for i in range(20):
ax.plot(data[i, :])
labels.append(str(i))
ax.legend(labels, ncol=10, loc="lower center", bbox_to_anchor=(0.5, -0.15), prop={"size":6})
plt.show()
它运作良好。但是,实际上我不确定图例的高度是多少,例如,如果我更改ncol=5
or ncol=2
,则图例的顶部和图形的底部会重叠。在我看来,出现这种情况是因为 的前两个参数bbox_to_anchor
是边界框的左下角坐标。当然bbox_to_anchor=(0.5, 1)
改成上面的设置图例也是一个解决办法,但我认为最好的解决办法可能是把bbox_to_anchor
's 参数设置为左上角坐标,让 bbox 从上往下走。
所以我的问题是,有没有办法让bbox_to_anchor
' 的起源更高而不是更低?
谢谢!
解决方案
您应该loc="upper center"
在ax.legend
通话中使用。当loc
和bbox_to_anchor
都使用时,loc
指定图例框的哪一部分应该放在 给定的位置bbox_to_anchor
。
推荐阅读
- python - Django admin:如何获取上传文件的路径
- python - 添加到列表后的类属性超出范围
- android - 触摸监听器在 RecyclerView + ViewPager2 中不起作用
- flutter - 在 Flutter 中使用其他语言
- python-3.x - Fluentd tcp 联系通过 netcat 工具成功。但是通过基本的 Python 3.7 失败了。为什么?
- javascript - 从 API 调用接收数据后,React 没有更新 UI(使用钩子)
- reactjs - 如何对momentjs进行单元测试
- python - 使用带有 LSTM 层的 Tensorboard 回调(cuDNN 实现)时,模型训练永远挂起 - Tensorflow 2.3
- html - CSS中的字体没有变化
- javascript - React.js - 如何从对象数组中访问特定值