我正在使用PyPlot
包在Julia中生成数字。每个图包含我使用subplot
组织的几个不同的图。我想在每个子图的左上角分配一个图形字母,这样第一个子图就会变成一个粗体的“a”'在左上角,第二个子图得到一个粗体&b; b)'在左上角,依此类推。目前,我最好的尝试是基于使用title
:
using PyPlot
figure(1);
subplots_adjust(hspace=0.4,wspace=0.4)
subplot(221) ; imshow(rand(20,20)) ; title("a)",loc="left",fontweight="bold") ; xlabel("x") ; ylabel("y")
subplot(222) ; imshow(rand(20,20)) ; title("b)",loc="left",fontweight="bold") ; xlabel("x") ; ylabel("y")
subplot(223) ; imshow(rand(20,20)) ; title("c)",loc="left",fontweight="bold") ; xlabel("x") ; ylabel("y")
subplot(224) ; imshow(rand(20,20)) ; title("d)",loc="left",fontweight="bold") ; xlabel("x") ; ylabel("y")
这似乎工作正常。但理想情况下,图形字母应放置在图形上方稍高的位置,并且向左侧(图形字母位于y轴标签的左侧)。有没有办法实现我的目标?
答案 0 :(得分:1)
像这样(用python编写)
import numpy as np
from itertools import count
fig, ax_lst = plt.subplots(2, 2)
def label_subplots(ax_lst, *, upper_case=True,
offset_points=(-5, -5)):
start_ord = 65 if upper_case else 97
for ax, lab in zip(np.ravel(ax_lst), (chr(j) for j in count(start_ord))):
ax.annotate(lab, (1, 1),
xytext=offset_points,
xycoords='axes fraction',
textcoords='offset points',
ha='right', va='top')
label_subplots(ax_lst, upper_case=True)