code: def plot_error_pars(self, mid):
          
          fig, axes = plt.subplots(1, 2, figsize=(10, 6))
  
          def plot_error_pars(axes, a, b, R, label=''):
              dR = a * R + b
              dlogR = np.abs(a + b / R)
              ax = axes[0]
              ax.scatter(R, dR / R * 100, label=label)
              ax = axes[1]
              ax.scatter(R, dlogR / np.abs(np.log(R)) * 100, label=label)
              ax.set_xscale('log')
              ax.set_yscale('log')
  
          for b in np.linspace(R.min(), np.percentile(R, 10), 5):
              plot_error_pars(axes, 0.05, b, R, label='b={0:.4f}'.format(b))
          axes[0].set_xlabel(r'$R [\Omega]$')
          axes[0].set_ylabel(r'$(\Delta R/R) \cdot 100 [\%]$')
          axes[1].set_xlabel(r'$log_{10}(R [\Omega])$')
          axes[1].set_ylabel(
              r'$log_{10}(R) / \Delta log_{10}(R) \cdot 100 [\%]$'
          )
          axes[0].axhline(y=100)
          axes[1].axhline(y=100)
          fig.tight_layout()
          fig.subplots_adjust(bottom=0.2)
          axes[0].legend(
              loc="lower center",
              ncol=4,
              bbox_to_anchor=(0, 0, 1, 1),
              bbox_transform=fig.transFigure
          )
  
          # fig.savefig('out.png', dpi=300)
          return fig
docs: ???