簡體   English   中英

在對數圖上設置自定義科學記數法 y

[英]Set custom scientific notation y tick on log-plot

我正在嘗試為我的情節設置自定義刻度,但我很掙扎,我嘗試了其他幾個線程的解決方案,但沒有一個有效:/我需要做兩個不同的情節,但我有一些問題。

我想要自定義 y 刻度,執行 5x10^-3、2x10^-3、1x10^-3、5x10^-4...(1、2、5 的倍數和科學記數法)

在 plot 上,我似乎無法修改刻度。 (我認為第二個 plot 的問題是因為小滴答聲是不可見的,但即使在使它們可見之后我也無法修改它們)。 我將刻度設置為“一半工作”的解決方案,這意味着我無法將它們設置為科學記數法

在此處輸入圖像描述 在此處輸入圖像描述

任何幫助將不勝感激:)

plt.rc('text', usetex=True)  
plt.rc('font', family='serif')  
plt.rcParams['figure.dpi'] = 600
plt.rcParams["figure.figsize"] = (4,2.1)
matplotlib.rcParams.update({'font.size': 13})

plt.plot([100,200 ,300 ,400 ,500 ,1000,1500,2000],[0.001378,0.000817,0.000627,0.000533,0.000457,0.000317,0.000240,0.000206])   

plt.grid(axis='y', linestyle='dotted', which='minor')
plt.grid(axis='x',linestyle='dotted')
plt.yscale('log')
plt.yticks([0.00005])
plt.show()

我會刪除你的聲明

plt.grid(axis='y', linestyle='dotted', which='minor')
plt.grid(axis='x',linestyle='dotted')
plt.yscale('log')
plt.yticks([0.00005])

並將其替換為:

plt.yscale('log')
yticks = [5E-3, 2E-3, 1E-3, 5E-4, 2E-4, 1E-4]
plt.yticks(ticks=yticks,labels=[format(x, '.0e') for x in yticks])
plt.grid(axis='y')

它有幫助嗎?

編輯:

如果您真的希望 label 的格式為ax 10-b ,您可以使用以下代碼:

yticks = [5E-3, 2E-3, 1E-3, 5E-4, 2E-4, 1E-4]
ylab=[]
for c,x in enumerate(yticks):
    xstr=format(x, '.0e').split('e')
    ylab.append(xstr[0]+ ' x $10^{' + xstr[1] +'}$' )
plt.yticks(ticks=yticks,labels=ylab)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM