我的代码:
#importing required libraries
import numpy as np
from matplotlib.patches import Polygon
import matplotlib.pyplot as plt
#plotting data
def func(x):
return (x-3)*(x+2)*(3*x+5)+25
a,b=2,9
x=np.linspace(0,10,30)
y=func(x)
fig,ax=plt.subplots(1,1,dpi=135)
ax.plot(x,y,linewidth=2.5,color='c')
ix=np.linspace(a,b)
iy=func(ix)
verts=[(a,0),*zip(ix,iy),(b,0)]
poly=Polygon(verts,facecolor='0.7',edgecolor='0.9')
ax.add_patch(poly)
ax.set_ylim(bottom=0)
ax.text(6.5,150,r'$\int_a^b f(x)$',horizontalalignment='center',fontsize=15)
ax.set_xlabel('X')
ax.set_ylabel('Y',rotation=0)
ax.set_xticks((a,b))
ax.set_xticklabels(('a','b'))
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.xaxis.set_ticks_position('bottom')
ax.set_yticks([])
plt.show()
上面的代码输出结果为:
我的问题:
您看到上面的图,纵坐标轴标签“Y”与纵轴相接触,而横坐标轴标签“X”和横轴之间有空白。
我该如何设置轴和标签之间的间距(就像x轴标签和x轴之间有一段空白)?
我的尝试:
在上面的代码中,我注释了set_ylabel()
方法并尝试使用text()
方法。
#ax.set_ylabel('Y',rotation=0)
fig.text(0.1,0.5,'Y')
#this code creating a little space between y label and y-axis but I want the same amount of space that is between x label an x axis
预期输出:
ax.text(max(x)/2, -(max(y)/10),'X')
设置“X”标签和ax.text(-(max(x)/10), max(y)/2,'Y')
设置“Y”标签。 - Zalak Bhalaniset_ylabel()
方法中缺少了labelpad
参数...由于您第一个回答了我的问题...所以我接受这个作为答案...再次感谢 :) - Anurag Dabasfig.text(0.1,0.5,'Y')
来设置。但是这里的 X 轴范围从 0 到 10,而 Y 轴范围从 0 到大约 3000。因此,你需要将值 0.1 和 0.5 分别设置为 X 轴和 Y 轴的比例。 - Zalak Bhalani