2016-11-07 9 views
1

私はジュリアで数字を生成するためにPyPlotパッケージを使用しています。各図には、subplotを使用して整理しているいくつかの異なるプロットが含まれています。最初のサブプロットが左上隅に太字の「a)」を、第2のサブプロットが左上隅に太字「b」を、それぞれのサブプロットの左上隅に数字文字を割り当てたいそうです。現在、私の最大の試みは、titleを使用しています:Julia:PyPlotで各サブプロットに数字文字を割り当てる?

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軸ラベルの左側にあるように)少し上に配置する必要があります。私が目指していることを達成する方法はありますか?

+1

は 'ジュリアのpyplotでfigtext'動作しますか? –

+1

"text"だけで動作するはずです。 –

+2

'annotate'が' text'よりも優れているとすれば、あなたはプレースメントをもっとコントロールできます。 – tacaswell

答えて

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) 

example output

関連する問題