【问题标题】:Residual plot not aligned with main graph残差图未与主图对齐
【发布时间】:2015-04-06 21:58:38
【问题描述】:

我的残差图有什么问题导致与我的主图不对齐?我的代码如下。

import matplotlib.pyplot as plt
from scipy import stats
import numpy as np

x = np.array([0.030956,0.032956,0.034956,0.036956,0.038956,0.040956])
y = np.array([10.57821088,11.90701212,12.55570876,13.97542486,16.05403248,16.36634177])
yerr = [0.101614114,0.363255259,0.057234211,0.09289917,0.093288198,0.420165796]
xerr = [0.00021]*len(x)
fig1 = plt.figure(1)
frame1=fig1.add_axes((.1,.3,.8,.6))
m, b = np.polyfit(x, y, 1)
print 'gradient',m,'intercept',b
plt.plot(x, m*x + b, '-', color='grey', alpha=0.5) 
plt.plot(x,y,'.',color='black',markersize=6)
plt.errorbar(x,y,xerr=0,yerr=yerr,linestyle="None",color='black')
plt.ylabel('$1/\sqrt{F}$ $(N)$',fontsize=20)
plt.autoscale(enable=True, axis=u'both', tight=True)
plt.grid(False)
frame2=fig1.add_axes((.1,.1,.8,.2))
s = m*x+b #(np.sqrt(4*np.pi*8.85E-12)/2.23E-8)*x
difference = y-s
plt.plot(x, difference, 'ro')
frame2.set_ylabel('$Residual$',fontsize=20)
plt.xlabel('$2s+d_0$ $(m)$',fontsize=20)

【问题讨论】:

    标签: python graph matplotlib


    【解决方案1】:

    您可以指定轴限制。问题是自动缩放以不同的方式移动您的两个图。如果您插入 2 行代码,每行都指定轴限制,它将修复它。

    plt.axis([.030,.0415, 10, 17])  #line 17
    plt.axis([.030,.0415, -.6, .8]) #line 26
    

    我相信这就是你要找的。​​p>

    【讨论】:

      【解决方案2】:

      尝试使用 GridSpec。

      from matplotlib import gridspec
      fig = plt.figure()
      gs = gridspec.GridSpec(2, 1, height_ratios=[3, 1])
      ax0 = plt.subplot(gs[0])
      ax1 = plt.subplot(gs[1])
      ax0.plot(x, m*x + b, '-', color='grey', alpha=0.5) 
      ax0.plot(x,y,'.',color='black',markersize=6)
      ax1.plot(x, difference, 'ro')
      

      并使用 set_ylabel 而不是 ylabel(例如用于 plt)作为轴。

      【讨论】:

        猜你喜欢
        • 2020-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-23
        • 1970-01-01
        • 2016-10-26
        • 2021-05-15
        • 1970-01-01
        相关资源
        最近更新 更多