从图中可以看出,xlabel和ylabe在绘图区域之外,无法完全显示。
有人可能会说更改fontsize,但是我希望fontsize很大。
下面是代码:
from numpy import *
from pylab import *
tduration=3600
if tduration<960:
time=linspace(0,tduration,120)
else:
n=(tduration-960)/480
time1=linspace(0,960,8,endpoint=False)
time2=linspace(960,tduration,n)
time=hstack((time1,time2))
timemin=time/60
T0=20
Tf=T0+345*log10(8*timemin+1)
timetem=column_stack((timemin,Tf))
savetxt("timetem.txt",timetem,newline='\r\n',fmt='%f')
heatingRate=345/(8*timemin+1)
fig,ax1 =subplots()
ax2 = ax1.twinx()
rc('font',family='Times New Roman')
ax1.plot(timemin,Tf,'k',linewidth=3,label='ISO834 fire curve')
ax2.plot(timemin,heatingRate,'b--',linewidth=3,label='heating rate')
ax1.plot(0, 0,'b--', label = 'heating rate',linewidth=3)
leg=ax1.legend(loc='best',fontsize=24)
leg.get_frame().set_alpha(0.0)
ax1.set_ylabel(r"T$(^{\circ}C)$",fontsize=24,fontname="Times New Roman")
ax2.set_ylabel(r"Heating rate($^{\circ}C$/min)",fontsize=24,fontname="Times New Roman")
ax1.set_xlabel("Time(min)",fontsize=24,fontname="Times New Roman")
ax1.tick_params(labelsize=24)
ax2.tick_params(labelsize=24)
ax1.grid()
show()
fig.savefig('iso834 with hr.png', transparent=True)
现在可能有点晚了,但是无论如何:
如果图形中有任何子图形,则应指定图形的内部边距和子图形中的空间。以下代码将为您提供帮助。在显示情节之前将其正确放置。
plt.subplots_adjust(wspace=0.6, hspace=0.6, left=0.1, bottom=0.22, right=0.96, top=0.96)
但是,另一个问题是如何在subplot_adjust中为上述参数指定值,那么答案就是使用subplot_tool。在显示图之前放下面的代码,然后会弹出一个窗口,您可以使用这些值并找到所需的值。
plt.subplot_tool()
另外,最好使用figsize参数指定图形的总大小。
希望对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句