2016-12-07 4 views
1

matplotlibを使って自動プロットを作成しようとしていますが、いくつかの異なるフィーチャを重ねてプロットしています(バックグラウンドは塗りつぶし等高線プロット、上のレベルはpcolormeshです)。私がプロットしようとしている最上位のフィーチャは、ラベルとアイコンが異なるいくつかの散布図です。matplotlibの凡例のサイズを修正しました

私は現在、次のコマンドを使用して、このプロットに凡例を追加しようとしています:

leg = ax.legend(legplots, 
      legnames, 
      scatterpoints=1, 
      loc='upper center', 
      ncol=3, 
      fontsize=14, 
     bbox_to_anchor=(0.5, -0.14), 
      fancybox=True, shadow=True) 

は斧が主軸であること、そしてlegplotsとlegnamesは、散布図のリストとその適切であると仮定ラベル。

凡例を正しく追加できますが、私が持っている脚プロットの数(および名前の長さ)が異なるため、プロットをアニメーション化すると、凡例のサイズが大きくなり、縮小します。凡例内の凡例ボックスのサイズと列幅を制御するにはどうすればよいですか?これは可能ですか?

答えて

0

現在のところ、バウンディングボックスのサイズは0で、その位置((0.5, -0.14))のみを指定しています。

凡例のバウンディングボックスを0より大きく設定することができます。また、凡例の最大数が入るために必要な最大サイズにも十分に大きく設定できます。サイズを見つける必要があると思います試行錯誤によって

ように、適切なlocパラメーターを組み合わせて

bbox_to_anchor=(x0, y0, width, height) 

フル4タプルの表記を使用し、キーワード引数mode="expand"は、あなたのニーズに十分な大き凡例を行うことができます。 4タプル表記の詳細については、this postを参照してください。legend location guideもご覧ください。

+0

このように動作します。凡例ボックスは固定された幅のままですが、2つのキャプションの重なりに問題があるようです。例:http://i.imgur.com/RYemFRs.png – Laxsnor

+0

これは実際には非常に奇妙です。私は、これが凡例の境界ボックスを設定することに厳しく関連しているのかどうかはわかりません。この問題は残りのコードと関連しており、解決するためには[MCVE]を作成する必要があります。 – ImportanceOfBeingErnest

関連する問題