【发布时间】:2021-04-28 17:30:39
【问题描述】:
在确保图例标题位于图中的同时指定颜色条图例位置的最佳方法是什么?有时位置会在右上角,如此处所示;但在其他图中,它将是可变的,左上/右下。
解决方案不用inset_axes()也可以。
替代方案: 如果颜色条图例在子图的右侧,如果“我的图例”标题是垂直和左侧,刻度标签在右侧和水平(我不知道该怎么做)也可以那个)。
使用 Python 3.8。
## Second Plot
vals2 = ax2.scatter(df.x, df.y, edgecolors = 'none', c = df.z,
norm = mcolors.LogNorm(), cmap=rainbow)
ax2.set_aspect('equal')
ax2.set_title('Subplot Title', style='italic');
ax2.set_xlabel('x');
ax2.set_ylabel('y');
cbaxes = inset_axes(ax2, width="30%", height="10%", location = 'upper right')
clb = plt.colorbar(vals2, cax=cbaxes, format = '%1.2f', orientation='horizontal');
clb.ax.set_title('My Legend')
【问题讨论】:
-
在
inset_axes()中使用loc=1将颜色条的位置固定在upper-right位置。 -
plt.colorbar(..., label='My Legend')而不是设置标题? -
@JodyKlymak 将其放在底部。我想要没有悬垂的相同配置。
-
您可以绘制颜色条,使用
ax.get_window_extent获取坐标区范围,然后将其移动到坐标区内部。这有点乱,但不是太难。但如果是我,我只会把轴放在右边,标签和刻度放在右边。您可能还想使用ax.inset_axes,这将允许您将颜色条放置在轴或数据单元中:matplotlib.org/stable/api/_as_gen/… -
@JodyKlymak 如何将颜色条垂直放置在右侧,刻度标签在右侧,标题在左侧?
标签: matplotlib legend python-3.8 subplot colorbar