我已经成功地增加了ticklabels的字体,但是现在它们太靠近轴了。我想在ticklabels和轴之间添加一点呼吸空间。
ndh0cuux1#
如果你不想全局改变间距(通过编辑你的rcParams),并且想要一个更干净的方法,试试这个:第一个月或者仅仅是x轴ax.tick_params(axis='x', which='major', pad=15)个或y轴ax.tick_params(axis='y', which='major', pad=15)个
ax.tick_params(axis='x', which='major', pad=15)
ax.tick_params(axis='y', which='major', pad=15)
f4t66c6m2#
看起来matplotlib将这些设置视为rcParams:
pylab.rcParams['xtick.major.pad']='8' pylab.rcParams['ytick.major.pad']='8'
字符串在你创建任何图形之前设置这些,你应该没问题。我看过源代码,似乎没有任何其他方法可以通过编程来设置它们。(tick.set_pad()看起来它试图做正确的事情,但填充似乎是在构造Tick时设置的,之后无法更改。
b1uwtaje3#
这可以使用set_pad来完成,但是你必须重置标签。
set_pad
for tick in ax.get_xaxis().get_major_ticks(): tick.set_pad(8.) tick.label1 = tick._get_text1()
字符串
jpfvwuh44#
axes
figure
x=
y=
fig.suptitle
fig.supxlabel
fig.supylabel
from matplotlib.cbook import get_sample_data import matplotlib.pyplot as plt import numpy as np fig, axs = plt.subplots(3, 5, figsize=(8, 5), constrained_layout=True, sharex=True, sharey=True) fname = get_sample_data('percent_bachelors_degrees_women_usa.csv', asfileobj=False) gender_degree_data = np.genfromtxt(fname, delimiter=',', names=True) majors = ['Health Professions', 'Public Administration', 'Education', 'Psychology', 'Foreign Languages', 'English', 'Art and Performance', 'Biology', 'Agriculture', 'Business', 'Math and Statistics', 'Architecture', 'Physical Sciences', 'Computer Science', 'Engineering'] for nn, ax in enumerate(axs.flat): ax.set_xlim(1969.5, 2011.1) column = majors[nn] column_rec_name = column.replace('\n', '_').replace(' ', '_') line, = ax.plot('Year', column_rec_name, data=gender_degree_data, lw=2.5) ax.set_title(column, fontsize='small', loc='left', y=1.05) # move the axes title ax.set_ylim([0, 100]) ax.tick_params(axis='both', which='major', pad=15) # move the tick labels ax.grid() fig.supxlabel('Year', y=-0.15) # with adjusted position fig.supylabel('Percent Degrees Awarded To Women', x=-0.05) # with adjusted position fig.suptitle('Majors', y=1.15) # with adjusted position plt.show()
的数据
o3imoua45#
在标记轴时,可以指定labelpad = n,以便在ticklabels和轴之间留出一些空间。
labelpad = n
from matplotlib import pyplot as plt plt.xlabel("X-axis Label", labelpad = 10) plt.ylabel("Y-axis Label", labelpad = 10)
5条答案
按热度按时间ndh0cuux1#
如果你不想全局改变间距(通过编辑你的rcParams),并且想要一个更干净的方法,试试这个:
第一个月
或者仅仅是x轴
ax.tick_params(axis='x', which='major', pad=15)
个或y轴
ax.tick_params(axis='y', which='major', pad=15)
个f4t66c6m2#
看起来matplotlib将这些设置视为rcParams:
字符串
在你创建任何图形之前设置这些,你应该没问题。
我看过源代码,似乎没有任何其他方法可以通过编程来设置它们。(tick.set_pad()看起来它试图做正确的事情,但填充似乎是在构造Tick时设置的,之后无法更改。
b1uwtaje3#
这可以使用
set_pad
来完成,但是你必须重置标签。字符串
jpfvwuh44#
axes
图来说很好,但是对于figure
还有其他选项,它们都可以通过指定x=
和y=
参数来定位。fig.suptitle
个fig.supxlabel
个fig.supylabel
个字符串
的数据
o3imoua45#
在标记轴时,可以指定
labelpad = n
,以便在ticklabels和轴之间留出一些空间。字符串