[解決済み] matplotlib の複数軸を異なる尺度で表示する [duplicate]
2023-02-02 20:44:03
質問
Matplotlib で複数のスケールを実装するにはどうしたらよいでしょうか?同じX軸に対して主軸と副軸をプロットするのではなく、異なるスケールを持つ多くのトレンドを同じY軸にプロットして、その色で識別できるようなものを考えています。
例えば
trend1 ([0,1,2,3,4])
と
trend2 ([5000,6000,7000,8000,9000])
を時間に対してプロットし、2つのトレンドを異なる色とY軸で異なるスケールにしたいのですが、Matplotlibでこれを実現するにはどうしたらよいでしょうか?
私はMatplotlibを調べたとき、彼らはそれが彼らのウィッシュリストにあることは確かですが、今のところこれを持っていないと言いました、これを実現するための方法はありますか?
これを実現できる python 用の他のプロットツールはありますか?
どのように解決するのですか?
もし私が質問を理解するならば、あなたは以下のことに興味があるかもしれません。 この例 をご覧ください。
上のYannのコメントも同様の例です。
編集 - 上記リンクを修正しました。対応するコードはMatplotlibのギャラリーからコピーしました。
from mpl_toolkits.axes_grid1 import host_subplot
import mpl_toolkits.axisartist as AA
import matplotlib.pyplot as plt
host = host_subplot(111, axes_class=AA.Axes)
plt.subplots_adjust(right=0.75)
par1 = host.twinx()
par2 = host.twinx()
offset = 60
new_fixed_axis = par2.get_grid_helper().new_fixed_axis
par2.axis["right"] = new_fixed_axis(loc="right", axes=par2,
offset=(offset, 0))
par2.axis["right"].toggle(all=True)
host.set_xlim(0, 2)
host.set_ylim(0, 2)
host.set_xlabel("Distance")
host.set_ylabel("Density")
par1.set_ylabel("Temperature")
par2.set_ylabel("Velocity")
p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")
par1.set_ylim(0, 4)
par2.set_ylim(1, 65)
host.legend()
host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right"].label.set_color(p3.get_color())
plt.draw()
plt.show()
#plt.savefig("Test")
関連
-
[解決済み] 複数の例外を1行でキャッチする(ブロックを除く)
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み] virtualenvで異なるバージョンのPythonを使用する
-
[解決済み] matplotlib で x 軸または y 軸の "目盛り頻度" を変更する
-
[解決済み] matplotlib のプロットで軸のテキストを非表示にする
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] subprocess.run()の出力を抑制またはキャプチャするには?
-
[解決済み] 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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Matplotlibで、fig.add_subplot(111)の引数はどういう意味ですか?
-
[解決済み] twinx()による第二軸:凡例に追加する方法は?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] あるオブジェクトが数であるかどうかを確認する、最もパイソン的な方法は何でしょうか?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?