Python 尝试更改轴刻度的字体大小时,matplotlib子绘图为空
我有一个脚本,用于绘制一个单独的情节,并将其改编为两个子情节。当试图通过Python 尝试更改轴刻度的字体大小时,matplotlib子绘图为空,python,matplotlib,Python,Matplotlib,我有一个脚本,用于绘制一个单独的情节,并将其改编为两个子情节。当试图通过tick_params更改轴刻度的字体大小时,我得到的只是一个空绘图。我已将此问题与此函数的调用隔离开来。以下MWE运行良好,注释掉了勾选参数调用,但如果使用这些调用,则会生成错误的数字。如何修改此代码以使用子地块 x = np.linspace(0.0, 1.0, 100) y = x fig = plt.figure() plt.subplot(1,2,1) plt.plot(x, y) plt.xlabel('x',
tick_params
更改轴刻度的字体大小时,我得到的只是一个空绘图。我已将此问题与此函数的调用隔离开来。以下MWE运行良好,注释掉了勾选参数
调用,但如果使用这些调用,则会生成错误的数字。如何修改此代码以使用子地块
x = np.linspace(0.0, 1.0, 100)
y = x
fig = plt.figure()
plt.subplot(1,2,1)
plt.plot(x, y)
plt.xlabel('x', fontsize=16)
plt.ylabel('y', fontsize=16)
mystr = 'Some plot 1'
plt.title(mystr, fontsize=16)
# plt.axes().tick_params(axis='both', which='major', labelsize=16)
# plt.axes().tick_params(axis='both', which='minor', labelsize=16)
plt.grid()
plt.subplot(1,2,2)
plt.plot(x, y)
plt.xlabel('x', fontsize=16)
plt.ylabel('y', fontsize=16)
mystr = 'Some plot 2'
plt.title(mystr, fontsize=16)
# plt.axes().tick_params(axis='both', which='major', labelsize=16)
# plt.axes().tick_params(axis='both', which='minor', labelsize=16)
plt.grid()
plt.show()
不要通过
plt.subplot()
访问子地块,而是单独访问轴
我想试试这样的东西:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0.0, 1.0, 100)
y = x
fig, ax = plt.subplots(1, 2)
ax[0].plot(x, y)
ax[0].set_title('Some plot 1', fontsize=16)
ax[0].set_xlabel('x', fontsize=16)
ax[0].set_ylabel('y', fontsize=16)
ax[0].tick_params(axis="x", labelsize=16)
ax[0].tick_params(axis="y", labelsize=16)
ax[0].grid()
ax[1].plot(x, y)
ax[1].set_title('Some plot 2', fontsize=16)
ax[1].set_xlabel('x', fontsize=16)
ax[1].set_ylabel('y', fontsize=16)
ax[1].tick_params(axis="x", labelsize=16)
ax[1].tick_params(axis="y", labelsize=16)
ax[1].grid()
实际上,在官方的matplotlib
GitHub存储库中也提出了一个非常类似的问题。因此,如果您想更详细地了解为什么子地块
以这种方式工作,您可能需要阅读本文
另外,我想补充一点:在你的例子中,这些数字略有重叠。这可以通过在定义子批次后调用fig.tight_layout()
来解决。plt.gca()。勾选参数()
可以在这里工作。最好使用ax=plt.subplot(…)
,然后使用ax.plot(…)
,ax.setxlabel(…)
,ax.tick_参数(…)
。。。