科学的表記法を使用している場合、軸上の指数の位置を変更する方法を探しています。私はすでにこの問題に数回立ち往生しています。既定のフォーマッタはScalarFormatter
ですが、何とか指数にアクセスするオプションはありません。matplotlibで科学的表記法を使用している場合の目盛りラベルの指数の位置付け
workaroundがありますが、それは既存のティンバーブも操作するので、好きではありません。これまでのところ、軸のメソッドによって返されたリストには、科学記法が使用されている場合、1つのテキストオブジェクトが含まれていることが分かりました。たとえば:
import matplotlib.pyplot as plt
import numpy as np
fig= plt.figure(figsize = plt.figaspect(0.5))
ax1= fig.add_subplot(121)
ax1.plot(np.arange(146), np.random.rand(146))
print(ax1.get_xmajorticklabels())
ax2= fig.add_subplot(122)
ax2.plot(np.arange(146)*1e-6, np.random.rand(146))
print(ax2.get_xmajorticklabels())
プリントが与える:<a list of 9 Text xticklabel objects>
と<a list of 10 Text xticklabel objects>
だから私は、追加のリスト項目は、指数のテキストオブジェクトであると考えていました。しかし、テキストを印刷すると空です。
この指数にテキストオブジェクトとしてアクセスする方法はありますか?それから、その位置を設定することは可能でしょうか?
あなたは 'ax2.xaxis.get_offset_textを()'使用して指数を含む 'Text'オブジェクトを取得することができます。これには '.set_position()'メソッドがありますが、キャンバスが再描画されるたびに位置がリセットされるようです。これがどこで起こるかを知ることができれば、テキストの位置を上書きできるはずです。 –