Python:在选定的子图中插入科学记数法

时间:2017-07-13 11:36:51

标签: python matplotlib plot subplot scientific-notation

我有一个像这样的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)

但它也不起作用。你如何使第一个子图中的科学符号出现在第二个子图中?

0 个答案:

没有答案