[解決済み] matplotlib が凡例でラベルを繰り返すのを止める
2023-04-23 02:37:01
質問
非常に単純化した例です。
xvalues = [2,3,4,6]
for x in xvalues:
plt.axvline(x,color='b',label='xvalues')
plt.legend()
凡例に'xvalues'が青い線で4回表示されるようになりました。 これを修正する以下の方法よりエレガントな方法はありますか?
for i,x in enumerate(xvalues):
if not i:
plt.axvline(x,color='b',label='xvalues')
else:
plt.axvline(x,color='b')
どのように解決するのですか?
plt.legend
はパラメータとして
-
軸ハンドルのリストで
Artist
オブジェクトである - 文字列であるラベルのリスト
これらのパラメータは両方ともオプションで、デフォルトは
plt.gca().get_legend_handles_labels()
.
を呼び出す前にラベルを辞書に登録することで、重複したラベルを削除することができます。
legend
. これは、辞書は重複するキーを持つことができないからです。
例えば
Python バージョン < 3.7 の場合
from collections import OrderedDict
import matplotlib.pyplot as plt
handles, labels = plt.gca().get_legend_handles_labels()
by_label = OrderedDict(zip(labels, handles))
plt.legend(by_label.values(), by_label.keys())
Pythonバージョン3.7用
Python 3.7では、辞書はデフォルトで入力順を保持します。そのため
OrderedDict
は必要ありません。
import matplotlib.pyplot as plt
handles, labels = plt.gca().get_legend_handles_labels()
by_label = dict(zip(labels, handles))
plt.legend(by_label.values(), by_label.keys())
ドキュメント
について
plt.legend
関連
-
[解決済み] matplotlib: カラーバーとそのテキストラベル
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] 文字列フォーマット:% vs. .format vs. f-stringリテラル
-
[解決済み] Matplotlib で凡例をプロットの外側に配置する方法
-
[解決済み] MatplotlibでPyPlotに凡例を追加する最も簡単な方法
-
[解決済み】matplotlibの凡例を軸の外側に移動させると、図形の枠で切り取られる
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Cythonのコードを含むPythonパッケージはどのように構成すればよいのでしょうか?
-
[解決済み] Pythonで、ウェブサイトが404か200かを確認するためにurllibをどのように使用しますか?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] Pythonでランダムなファイル名を生成する最良の方法
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複