[解決済み] matplotlib で 2 番目の x 軸を追加する方法
2023-03-21 17:20:10
質問
とても簡単な質問です。私はプロット上に2番目のX軸を持つ必要があり、この軸は最初の軸の特定の位置に対応する特定の数のティックを持つようにしたいです。
例でやってみましょう。ここでは、ダークマターの質量を、0から1までの範囲で1/(1+z)として定義される膨張係数の関数としてプロットしています。
semilogy(1/(1+z),mass_acc_massive,'-',label='DM')
xlim(0,1)
ylim(1e8,5e12)
プロットの上部にもう一つX軸を持ち、膨張係数のいくつかの値に対応するzを表示したいと思います。それは可能ですか?もし可能であれば、どのようにすればX軸を持つことができますか?
どのように解決するのですか?
Dharaさんの回答のコメントを参考にさせていただくと、リストを設定したいようですね。
new_tick_locations
のリストを、古い x 軸から新しい x 軸への関数によって設定したいようです。その場合
tick_function
は、点のnumpy配列を受け取り、それらを新しい値にマップし、それらをフォーマットします。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = ax1.twiny()
X = np.linspace(0,1,1000)
Y = np.cos(X*20)
ax1.plot(X,Y)
ax1.set_xlabel(r"Original x-axis: $X$")
new_tick_locations = np.array([.2, .5, .9])
def tick_function(X):
V = 1/(1+X)
return ["%.3f" % z for z in V]
ax2.set_xlim(ax1.get_xlim())
ax2.set_xticks(new_tick_locations)
ax2.set_xticklabels(tick_function(new_tick_locations))
ax2.set_xlabel(r"Modified x-axis: $1/(1+X)$")
plt.show()
<イグ
関連
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] Matplotlibでプロットを表示するのではなく、画像ファイルに保存する。
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Python Matplotlib の図のタイトルが軸のラベルに重なる(twiny を使用した場合
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] PyMongoで.sortを使用する
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] virtualenvsはどこに作成するのですか?
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] 新しいpip backtrackingの実行時問題の解決