निकालें मैंने कुछ समय व्यर्थ रूप से मेरे प्रश्न का उत्तर खोजने में बिताया है, इसलिए मुझे लगता है कि एक नया प्रश्न क्रम में है। इस भूखंड पर विचार करें:अक्ष स्केल
अक्ष लेबल वैज्ञानिक संकेतन का उपयोग करें। वाई-अक्ष पर, सब ठीक है। हालांकि, मैंने स्केलिंग कारक से छुटकारा पाने की कोशिश की है और पाइथन को निचले-दाएं कोने में जोड़ा है। मैं या तो इस कारक को पूरी तरह से हटा देना चाहता हूं और बस अक्ष शीर्षक में इकाइयों द्वारा इसे इंगित करना चाहता हूं या इसे प्रत्येक टिक लेबल में गुणा करना चाहता हूं। सब कुछ इस बदसूरत 1e14
से बेहतर लगेगा।
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')
अपडेट::
कोड यह मेरी स्क्रिप्ट में scientificNotation
के शामिल विल के कार्यान्वयन, साजिश अब लग रहा है
बहुत अच्छे अगर आप मुझसे पूछें।
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)
टिप के लिए धन्यवाद। मैंने संक्षेप में पहले कोशिश की और सोचा कि यह काम नहीं करता है, क्योंकि साजिश गायब हो गई और स्केल कारक बना रहा। मैंने कल ही पाइथन का उपयोग करना शुरू किया, इसलिए मुझे लगता है कि यह तब से कई वाक्यविन्यास गलतियों में से एक था। लेकिन अब जब आप इसे भी लाए हैं, तो मैंने फिर से जांच की और महसूस किया कि यह पहली बार गलत हो गया था क्योंकि मैं 'put.xlim' में rescaling को भी जोड़ना भूल गया था, जैसा कि 'plt.xlim में है (दाएं = अधिकतम (data_a [:, 0])/1e14) '। – Casimir
क्या आप हर टिक लेबल में कारक प्रकट करने के तरीके के बारे में भी जानते हैं? धुरी लेबल की परिमाण के क्रम में परिवर्तन होने पर इसका मतलब बहुत कम हो जाएगा। – Casimir
@Casimir: हाँ, आपको 'फॉर्मेटर' सेट करने की आवश्यकता है। मेरा जवाब देखें – tom