使用matplotlib在yaxis中强制指数幂

时间:2016-05-13 13:13:45

标签: python matplotlib

我想在一个人物上展示两个情节。我使用的数据是科学格式,具有不同的指数幂。我可以让情节显示出相同的指数幂吗?贝娄是我目前最小的工作范例:

import numpy as np
import matplotlib.pyplot as plt


xdata = np.array([1,2,3,4,5])

# Data Set 1
ydata1 = np.array([0.5e-11, 0.6e-11, 4.e-11, 5.e-11, 10.e-11])
ydata1err = np.array([1.e-11, 1.e-11, 1.e-11, 1.e-11, 1.e-11])

# Data Set 2
ydata2 = np.array([0.5e-11, 0.6e-11, 0.4e-11, 0.5e-11, 1.e-11])
ydata2err = np.array([0.5e-11, 0.5e-11, 0.5e-11, 0.5e-11, 0.5e-11])

# Creating Figure
fig = plt.figure()
ax = fig.add_subplot(111)    # The big subplot
ax1 = fig.add_subplot(211)
ax2 = fig.add_subplot(212)    

# Plotting Data
ax1.errorbar(xdata, ydata1, yerr=ydata1err, fmt='bo')
ax2.errorbar(xdata, ydata2, yerr=ydata2err, fmt='ro')    

这绘制了两个范围为[0,1.e-10]和[0,1.e-11]的图。我想要的是[0,1.e-10]和[0,0.1e-10]。

感谢。

1 个答案:

答案 0 :(得分:0)

您可以使用ax.set_ylim()限制每个子图的数据。如果您希望它们具有相同的限制,您可以这样做:

y_range = [0,1*10**-10]
ax1.errorbar(xdata, ydata1, yerr=ydata1err, fmt='bo')
ax1.set_ylim(y_range)
ax2.errorbar(xdata, ydata2, yerr=ydata2err, fmt='ro')  
ax2.set_ylim(y_range)