微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python matplotlib,消除线图中的空白,其中数据仅存在于 xaxis 的部分

如何解决Python matplotlib,消除线图中的空白,其中数据仅存在于 xaxis 的部分

我有一个问题,我根据波数绘制幅度量,相关波数的范围在 950 - 1300 cm(^-1) 之间。但是,在整个波数范围内只有幅度数据点,即 950-1000、1050-1100、1200-1300 等。当我使用 matplotlib 绘制它时,我在图中得到了很大的差距(在我插入了“NAN”之后' 在数据间隙之间避免不必要的外推)。我不知道如何消除这些差距,我想看到一个恒定的线图,xaxis 考虑到值之间的跳跃。我的代码如下,以及情节的一个例子。此外,xaxis 标签似乎重叠,我也想避免这种情况。

def plot_radiances(self,index=0):
    # method to plot radiances,and residuals and jacobians

    wavelength        = self.mask_data(self.general_radiance.FREQUENCY.values[:],-999,xarray=False)
    observed_radiance = self.mask_data(self.general_radiance.RADIANCEOBSERVED.values[:],xarray=False)
    fit_radiance   = self.mask_data(self.general_radiance.RADIANCEFIT.values[:],xarray=False)
    nesR        = self.mask_data(self.general_radiance.nesR.values[:],xarray=False)
    quality     = np.where(self.general_radiance.QUALITY.values[:] > 0)
    wavelength = (wavelength[quality,:][0])
    cwavelength = wavelength
    observed_radiance = observed_radiance[quality,:][0]
    fit_radiance = fit_radiance[quality,:][0]
    nesR = nesR[quality,:][0]
    dpi = 96.
    length = len(quality)
    nanind = []
    for i,ii in enumerate(wavelength[index,:]):
        if float(ii)-float(wavelength[index,i-1]) > 1.0:
            nanind.append(i)
    wavelength = np.insert(wavelength,nanind,np.nan,axis=1)
    observed_radiance = np.insert(observed_radiance,axis=1)


    print(wavelength[index,:])
    fig = figure(figsize=(800 / dpi,600 / dpi),dpi=dpi)
    ax = axes()
    ax.plot(wavelength[index,:],observed_radiance[index,:])
    ax.set_xticks(wavelength[index,:][::12])
    ax.set_xticklabels([str(i) for i in wavelength[index,:]][::12])
    return []

Example lineplotoutput

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。