実現したいこと
Matplotlibで目盛りを冪乗表記にしたい
前提
Matplotlibでグラフを作成しています。
目盛りの表記を×10^-14のように、冪乗表記にしたいです。
そのまま実行すると冪乗表記ではなく、グラフの左上に「1e-14」というふうに表記されます。
解決したいこと
目盛りの方に1.5×10^-14というふうに表記したいです。
グラフ左上の「1e-14」というような表記を消したいです。
どのようなコードを追加すればいいでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答2件
0
ベストアンサー
目盛表記を上書きすることはできるようです。
fig.canvas.draw()
で内部的に描画をした後で get_yticklabels()
と get_text()
を使ってY軸表記の文字列のリストを取得します。次に,それを加工し set_yticklabels()
で上書きします。
なお,文字数を増やすと表記の先頭が欠けたので fig.subplots_adjust(left=0.2)
で左の余白(デフォルトは left=0.125
)を増やしています。
Python
1import numpy as np 2import matplotlib.pyplot as plt 3 4x = np.arange(11) 5y = 1e-18 * np.exp(x) 6 7fig, (ax0, ax1) = plt.subplots(2, figsize=(5, 8)) 8 9ax0.plot(x, y) 10ax1.plot(x, y) 11 12fig.canvas.draw() 13ytl = [x.get_text() for x in ax1.get_yticklabels()] 14ytl2 = [s if s == "0.0" else s + "x10^-14" for s in ytl] 15ax1.set_yticklabels(ytl2) 16print(ytl); print(ytl2) 17# ['−0.5', '0.0', '0.5', '1.0', '1.5', '2.0', '2.5'] 18# ['−0.5x10^-14', '0.0', '0.5x10^-14', '1.0x10^-14', '1.5x10^-14', '2.0x10^-14', '2.5x10^-14'] 19 20fig.subplots_adjust(left=0.2) 21 22plt.show()
投稿2023/07/01 11:00
総合スコア491
0
この回答はGPT-4による自動生成回答です
Matplotlibで目盛りを冪乗表記にするには、ticker
モジュールのFuncFormatter
を使用します。以下に具体的なコードを示します。
python
1import matplotlib.pyplot as plt 2import matplotlib.ticker as ticker 3import numpy as np 4 5# データ生成 6x = np.linspace(0, 2*np.pi, 100) 7y = np.sin(x) * 1e-14 8 9fig, ax = plt.subplots() 10 11# y軸の目盛りを冪乗表記にする 12formatter = ticker.FuncFormatter(lambda x, pos: '{:.1f}e-14'.format(x*1e14)) 13ax.yaxis.set_major_formatter(formatter) 14 15ax.plot(x, y) 16plt.show()
このコードでは、FuncFormatter
にラムダ関数を渡しています。この関数は、目盛りの値を引数として受け取り、それを冪乗表記の文字列に変換します。'{:.1f}e-14'.format(x*1e14)
の部分で、目盛りの値を10^14倍して1桁の小数点以下まで表示する冪乗表記の文字列を作成しています。
また、ax.yaxis.set_major_formatter(formatter)
で、y軸の目盛りのフォーマッタを設定しています。これにより、y軸の目盛りが冪乗表記になります。
投稿2023/06/28 04:49
Powered by GPT-4
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。