Sorusuna cevap aramak için biraz zaman harcadım, bu yüzden yeni bir sorunun olduğunu düşünüyorum. Bu arsa düşünün:Eksen ölçeğini kaldırın
etiketler bilimsel gösterim kullanabilirsiniz eksenleri. Y ekseninde, her şey yolunda. Ancak, Python'un sağ alt köşeye eklediği ölçekleme faktörünü ortadan kaldırmayı denedim ve başaramadım. Bu faktörü tamamen kaldırmak istiyorum ve bunu eksen başlığındaki birimlerle belirtmek veya her bir etiketle çarpmak istiyorum. Her şey bu çirkin 1e14
'dan daha iyi görünecekti.
import numpy as np data_a = np.loadtxt('exercise_2a.txt')
import matplotlib as mpl
font = {'family' : 'serif',
'size' : 12}
mpl.rc('font', **font)
import matplotlib.pyplot as plt
fig = plt.figure()
subplot = fig.add_subplot(1,1,1)
subplot.plot(data_a[:,0], data_a[:,1], label='$T(t)$', linewidth=2)
subplot.set_yscale('log')
subplot.set_xlabel("$t[10^{14}s]$",fontsize=14)
subplot.set_ylabel("$T\,[K]$",fontsize=14)
plt.xlim(right=max(data_a [:,0]))
plt.legend(loc='upper right')
plt.savefig('T(t).pdf', bbox_inches='tight')
Güncelleme:
İşte kod bana sorarsanız
Çok güzel
gibi senaryom içinescientificNotation
arasında birleştirilerek Will'in uygulanması, arsa şimdi görünüyor.
import numpy as np
data = np.loadtxt('file.txt')
import matplotlib as mpl
font = {'family' : 'serif',
'size' : 16}
mpl.rc('font', **font)
import matplotlib.pyplot as plt
fig = plt.figure()
subplot = fig.add_subplot(1,1,1)
subplot.plot(data[:,0], data[:,1], label='$T(t)$', linewidth=2)
subplot.set_yscale('log')
subplot.set_xlabel("$t[s]$",fontsize=20)
subplot.set_ylabel("$T\,[K]$",fontsize=20)
plt.xlim(right=max(data [:,0]))
plt.legend(loc='upper right')
def scientificNotation(value):
if value == 0:
return '0'
else:
e = np.log10(np.abs(value))
m = np.sign(value) * 10 ** (e - int(e))
return r'${:.0f} \cdot 10^{{{:d}}}$'.format(m, int(e))
formatter = mpl.ticker.FuncFormatter(lambda x, p: scientificNotation(x))
plt.gca().xaxis.set_major_formatter(formatter)
plt.savefig('T(t).pdf', bbox_inches='tight', transparent=True)
Bahşiş için teşekkürler. Kısa bir süre önce bunu denedim ve işe yaramadığını düşündüm, çünkü arsa ortadan kayboldu ve ölçek faktörü kaldı. Sadece dün Python kullanmaya başladım, o zamandan beri yapılan birçok sözdizimi hatası olduğunu düşündüm. Ama şimdi sen de onu getirdin, tekrar kontrol ettim ve ilk kez yanlış olduğunu fark ettim çünkü plt.xlim'de olduğu gibi, 'put.xlim' için yeniden ölçeklendirmeyi eklemeyi unutmuştum (sağda = max (data_a) [: 0])/1e14) '. – Casimir
Ayrıca, her onay etiketinde faktörü görmenin bir yolunu biliyor musunuz? Bu, eksen etiketlerinin büyüklüğü sırasının değişmesi durumunda daha az uğraşmak anlamına gelir. – Casimir
@Casimir: Evet, 'formatter' ayarlamalısınız. Cevabımı görün – tom