web-dev-qa-db-ja.com

凡例内の行数を制御する

私は現在、1つのプロットに大量のデータをプロットしようとしています。色と記号を繰り返し使用して表現を構成しました。ただし、最終結果をプロットすると、凡例内の行数を制御できないため、凡例がわずかにずれて表示されます。したがって、5回繰り返される緑、次に5回繰り返される赤、5回繰り返される青、次に2回のその他を取得する代わりに、5 -4 -4 -4を取得します(ここで、5-5-5-2を優先します)

添付画像ではっきりとわかります。

Plot with colored legend in wrong format

現在、凡例には次のオプションを使用しています。

axp.legend(loc="lower right",ncol=4)
13
BlaB

また、この問題が数回発生し、凡例にダミーアイテムを追加して最後の列を埋めることでこの回避策を使用します。よりエレガントな方法が利用できる場合は、それらについても知りたいと思います。

import numpy as np
import matplotlib.pylab as pl

pl.figure()

pl.plot(np.arange(10), np.random.random([10,5]), color='r', label='red')
pl.plot(np.arange(10), np.random.random([10,5]), color='g', label='green')
pl.plot(np.arange(10), np.random.random([10,5]), color='b', label='blue')
pl.plot(np.arange(10), np.random.random([10,2]), color='k', label='black')

# Add empty dummy legend items
pl.plot(np.zeros(1), np.zeros([1,3]), color='w', alpha=0, label=' ')

pl.legend(ncol=4)

enter image description here

10
Bart