3

いくつかの行があり、凡例を表示したいと思います。問題は、さまざまなスタイル ( --:-.) が少なすぎるために使用できないことと、マーカー ( +*など) を線上のいくつかの点を表示する必要があるため使用できないことです。

だから私が思いついた最良のアイデアは、数字を使うことです。しかし、数字で凡例を作成する方法がわかりません。自分で線の近くに数字を描くこともできますが (それらを最適な位置に配置するため)、数字で凡例を描くにはどうすればよいでしょうか?

つまり、代わりに:

--  H
-.- Li

次のようなものが欲しいです:

1  H
2  Li
4

1 に答える 1

3

おそらく、ミックスに投入された小さなラテックスですか?

#In which we make a legend; not with lines, but numbers!

import pylab as pl
pl.rc('text', usetex=True)

pl.figure(1)
pl.clf()
ax = pl.subplot(111)
pl.plot(range(0,10), 'k', label = r'\makebox[25]{1\hfill}Bla')
pl.plot(range(1,11), 'k', label = r'\makebox[25]{12\hfill}Bla12')
lgd = pl.legend(handlelength = -0.4)
for k in lgd.get_lines():
k.set_linewidth(0)
pl.draw()
pl.show()

番号/ラベルは、特定の幅の \makebox と \hfill を使用して、ラベルで使用されていないスペースを占有することによって整列されます。数字は自動ではありませんが、ループを使用して線を引く場合は、カウンターを追加して数字を追跡できます。

これが要件の一部であるかどうかはわかりませんが、線幅を 0 に設定し、凡例に予約されているスペースを負にすることで、線が削除されます。凡例は常に線を表示することを意図していると信じているため、これを行うためのより適切な方法を見つけることができませんでした (たとえば、numpoints を 0 に設定することはできません)。

もちろん、プロットの適切な場所にテキストを追加して、凡例をまったく使用しないこともできます。

于 2011-01-18T16:13:13.180 に答える