我有一个像这样的2子图像,仅在Series 2
的情况下才有科学记数法:
我希望科学记数法也可以用于Series 1
,这样我就可以使用相同的y量表。
这是我创建图片的方式:
fig, ax = plt.subplots(1,2,figsize=(16, 8))
from matplotlib.ticker import OldScalarFormatter, ScalarFormatter
plt.subplot(121)
plt.plot(x, y1, color='k')
plt.xlabel('x',fontsize=12)
plt.ylabel('y1',fontsize=12)
plt.tick_params(axis='both', which='major', labelsize=12)
plt.title('Series 1',fontsize=14)
plt.subplot(122)
plt.plot(x, y2, color='k')
plt.xlabel('x',fontsize=12)
plt.ylabel('y2',fontsize=12)
plt.tick_params(axis='both', which='major', labelsize=12)
plt.title('Series 2',fontsize=14)
plt.show()
我尝试过ScalarFormatter
:
plt.subplot(121)
yfmt = ScalarFormatter()
yfmt.set_powerlimits((0,8))
plt.plot(x, y1, color='k')
ax[0].yaxis.set_major_formatter(yfmt)
plt.xlabel('x',fontsize=12)
plt.ylabel('y1',fontsize=12)
plt.tick_params(axis='both', which='major', labelsize=12)
plt.title('Series 1',fontsize=14)
但它不起作用。我也试过了get_yaxis().get_major_formatter().set_scientific(True)
:
plt.subplot(121)
plt.plot(x, y1, color='k')
ax[0].get_yaxis().get_major_formatter().set_scientific(True)
plt.xlabel('x',fontsize=12)
plt.ylabel('y1',fontsize=12)
plt.tick_params(axis='both', which='major', labelsize=12)
plt.title('Series 1',fontsize=14)
但它也不起作用。你如何使第一个子图中的科学符号出现在第二个子图中?