我的代码:
path="M14 16a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12zM5.904 5.197 10 9.293V6.525a.5.5 0 0 1 1 0V10.5a.5.5 0 0 1-.5.5H6.525a.5.5 0 0 1 0-1h2.768L5.197 5.904a.5.5 0 0 1 .707-.707z"
上面的代码给出:
我的问题:
因此,如您所见,ylabel 'Y' 与 y 轴接触,并且 xlabel 'X' 和 x 轴之间存在空间
如何设置轴和标签之间的空间(就像 xlabel 和 x 轴之间有一个空间)?
我的尝试:
在上面的代码中,我注释了 #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()
方法并尝试了 set_ylabel()
方法
text()
预期输出:
答案 0 :(得分:2)
您可以像这样使用 labelpad 参数设置边界
ax.set_ylabel('Y', rotation=0, labelpad=10)
您也可以在 set_ylabel 行中的“Y”标签后添加空格,如下所示
ax.set_ylabel('Y ',rotation=0)
注意:
正如您所提到的,您希望两个轴标签之间的空格相同,以便您可以使用以下方法设置 'X' 标签:
ax.text(max(x)/2, -(max(y)/10),'X')
和
'Y' 标签使用:
ax.text(-(max(x)/10), max(y)/2,'Y')
答案 1 :(得分:2)
如果你调整了标签的水平位置,你会拥有和平常一样的空间。
ax.set_ylabel('Y', rotation=0, ha='right')
如果您需要更多空间,可以使用以下设置。
ax.yaxis.labelpad = 20