我已经在图表的x-ticks上丢失了数字,我该如何回复它们?
这是我绘制残差图的代码;然而,我已经失去了我的X轴刻度数字,我不知道如何让他们回来......任何帮助将不胜感激。对不起,如果这个线程的格式不对,这是我的第一个。我已经在图表的x-ticks上丢失了数字,我该如何回复它们?
代码:
pyplot.figure() fig1 = plt.figure(1)
frame1=fig1.add_axes((.1,.3,.8,.6))
pyplot.errorbar(xval, yval, yerr=yerr, xerr=xerr, marker='o',markersize = 2, linestyle='None', color = 'black')
# Axis labels
pyplot.xlabel(' Height (m)')
pyplot.ylabel('Mass per second (kg.s-1)')
# Generate best fit line using model function and best fit parameters, and add to plot
fit_line=model_funct(xval, [a_soln, b_soln])
# Theoretical line
x = np.array(arange(0.07,0.15, 0.001))
y = (-2.61049E-05) + (0.005815772)*x
plt.plot(x, y, linestyle = '--', color ='r',linewidth = 0.7, label = 'Theoretical')
# Experimental line
s = (-4.43329E-05) + (0.006008837)*x
pyplot.plot(x, s,linewidth = 0.7, color = 'black', label = 'Experimental Chi Squared Fit')
# Set suitable axis limits: you will probably need to change these...
pyplot.xlim(0.08, 0.14)
pyplot.ylim(0.0004, 0.0008)
pyplot.legend(loc = 'upper left',prop={'size':10})
frame2=fig1.add_axes((.1,.1,.8,.2))
difference = y - s
pyplot.plot(x, difference, color = 'black')
frame2.set_ylabel('Residual')
plt.xlabel('Height (m)')
plt.yticks(numpy.arange(-0.000010, 0.000010, 0.00001))
plt.xticks(numpy.arange(0.08, 0.14, 0.01))
pyplot.ylim(-0.000010, 0.000010)
pyplot.xlim(0.08,0.14)
pyplot.grid()
pyplot.show()
回答:
相反牵伸装置中,可以考虑使用次要情节代替。正如我从代码中看到的那样,您试图使用不同高度比例的子图。有更好的方法来做到这一点,例如与gridspec
:
import numpy as np import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
fig = plt.figure()
gs = gridspec.GridSpec(2, 1, height_ratios=[4, 1])
ax1 = plt.subplot(gs[0, 0])
plt.errorbar(xval, yval, yerr=yerr, xerr=xerr, marker='o', markersize = 2, linestyle='None', color='black')
#Axis labels
ax1.set_xlabel(' Height (m)')
ax1.set_ylabel(r'Mass per second (kg$\cdot$s$^{-1}$)')
#Generate best fit line using model function and best fit parameters, and add to plot
fit_line=model_funct(xval, [a_soln, b_soln])
#Theoretical line
x = np.arange(0.07, 0.15, 0.001)
y = (-2.61049E-05) + (0.005815772)*x
ax1.plot(x, y, linestyle = '--', color ='r',linewidth = 0.7, label = 'Theoretical')
#Experimental line
s = (-4.43329E-05) + (0.006008837)*x
ax1.plot(x, s,linewidth = 0.7, color = 'black', label = 'Experimental Chi Squared Fit')
#Set suitable axis limits: you will probably need to change these...
ax1.set_xlim(0.08, 0.14) #redundant by adding "sharex=ax1" 4 lines blelow
ax1.set_ylim(0.0004, 0.0008)
ax1.legend(loc = 'upper left',prop={'size':10})
ax2 = plt.subplot(gs[1, 0], sharex=ax1)
difference = y - s
plt.plot(x, difference, color = 'black')
ax2.set_ylabel('Residual')
ax2.set_xlabel('Height (m)')
ax2.set_yticks(np.arange(-0.000010, 0.000010, 0.00001))
ax2.set_xticks(np.arange(0.08, 0.14, 0.01))
ax2.set_ylim(-0.000010, 0.000010)
ax2.set_xlim(0.08,0.14)
ax2.grid()
plt.tight_layout()
plt.show()
我还添加了一些一致性您使用pyplot
和plt
的方式,去掉了一些冗余。请通过代码并排查看编辑。
要回答您的问题,您的x轴刻度编号隐藏在较低的框架后面。由于您已将较高帧设置为0.8
,较低帧设置为0.2
,因此xticks没有空间。
这是至少要继续下去的东西。
回答:
底部“轴”(该图中的“副区”)被掩盖上述的轴的x标签。
您可以通过下方再次见到他们轴小
使用行frame2=fig1.add_axes((.1,.1,.8,.1))
。 (注意到.2
现在.1
你的代码不能运行自包含的,但是这可能是大概你追求的:
以上是 我已经在图表的x-ticks上丢失了数字,我该如何回复它们? 的全部内容, 来源链接: utcz.com/qa/258375.html