Anu*_*bas 23 python visualization matplotlib
我的代码:
#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()
Run Code Online (Sandbox Code Playgroud)
上面的代码给出:
我的问题:
正如您所看到的,ylabel 'Y' 与 y 轴接触,并且 xlabel 'X' 和 x 轴之间有空间
如何设置轴和标签之间的空间(就像 xlabel 和 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
Run Code Online (Sandbox Code Playgroud)
预期输出:
Zal*_*ani 32
您可以使用 labelpad 参数设置边界,如下所示
ax.set_ylabel('Y', rotation=0, labelpad=10)
Run Code Online (Sandbox Code Playgroud)
您也可以在 set_ylabel 行中的“Y”标签后面添加空格,如下所示
ax.set_ylabel('Y ',rotation=0)
Run Code Online (Sandbox Code Playgroud)
笔记:
正如您所提到的,您希望两个轴标签之间有相同的空格,因此您可以使用以下方法设置“X”标签:
ax.text(max(x)/2, -(max(y)/10),'X')
Run Code Online (Sandbox Code Playgroud)
和
“Y”标签使用:
ax.text(-(max(x)/10), max(y)/2,'Y')
Run Code Online (Sandbox Code Playgroud)
如果调整标签的水平位置,您将拥有与平常相同的空间。
ax.set_ylabel('Y', rotation=0, ha='right')
Run Code Online (Sandbox Code Playgroud)
如果您需要更多空间,可以使用以下设置。
ax.yaxis.labelpad = 20
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39433 次 |
| 最近记录: |