我正在尋找一種方法,以便在使用科學記數法時更改軸上指數的位置。我已經陷入了這個問題幾次。我已經知道默認格式化程序是ScalarFormatter
,但它無法以某種方式訪問指數。在matplotlib中使用科學記數法時定位刻度標籤的指數
有一個workaround但我不喜歡它,因爲它也操縱現有的標籤。到目前爲止,我發現,如果使用科學記數法,軸方法返回的列表更多地包含一個文本對象。例如:
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()'方法,但是當畫布重繪時,它的位置似乎會被重置。如果你能弄清楚發生了什麼,那麼你應該能夠覆蓋文本的位置。 –