Matplotlib:删除子图中的科学计数法

我想创建一个包含四个子图的图形。行中的每个图共享同一y轴,同一列中的图共享同一x轴。在每个轴上,我都使用科学计数法。虽然我可以使用删除刻度线的数量ticklabel_format,但这并不能删除轴上的指数。随着ax1.xaxis.set_visible(False)中,1e5x-axis被删除,但也刻度线。如何1eX在保留刻度线的情况下仅删除与另一个轴共享轴的子图?例如,如何摆脱子图2中的1e51e2

import numpy as np

import matplotlib.pyplot as plt

fig = plt.figure()

ax3 = fig.add_subplot(223)

ax1 = fig.add_subplot(221, sharex = ax3)

ax4 = fig.add_subplot(224, sharey = ax3)

ax2 = fig.add_subplot(222, sharex = ax4, sharey = ax1)

#First plot

x = np.arange(0, 10**5, 100)

y = x

ax1.plot(x,y)

ax1.set_title('Subplot 1')

# Third plot

y = -x

ax3.plot(x,y)

ax3.set_title('Subplot 3')

#Second plot

x = np.arange(0, 100)

y = 10**3 * x + 100

ax2.plot(x,y)

ax2.set_title('Subplot 2')

#Fourth plot

y = -10**3 * x - 100

ax4.plot(x,y)

ax4.set_title('Subplot 4')

ax4.ticklabel_format(style = 'sci', axis='x', scilimits=(0,0))

ax3.ticklabel_format(style = 'sci', axis='x', scilimits=(0,0))

ax1.ticklabel_format(style = 'sci', axis='y', scilimits=(0,0))

ax3.ticklabel_format(style = 'sci', axis='y', scilimits=(0,0))

plt.setp(ax1.get_xticklabels(), visible=False)

plt.setp(ax2.get_xticklabels(), visible=False)

plt.setp(ax2.get_yticklabels(), visible=False)

plt.setp(ax4.get_yticklabels(), visible=False)

plt.show()

返回:

在此处输入图片说明

回答:

如果为每个轴添加这些线(ax1例如):

ax1.xaxis.get_offset_text().set_visible(False)

ax1.yaxis.get_offset_text().set_visible(False)

这将从两个轴上删除科学计数法文本。

以上是 Matplotlib:删除子图中的科学计数法 的全部内容, 来源链接: utcz.com/qa/403553.html

回到顶部