usgs.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:WellApplication 作者: inkenbrandt 项目源码 文件源码
def nwis_heat_map(self):
        from scipy.interpolate import griddata
        import matplotlib.cm as cm
        import matplotlib as mpl

        meth = 'linear'  # 'nearest'

        data = self.data

        if isinstance(data.index, pd.core.index.MultiIndex):
            data.index = data.index.droplevel(0)

        x = data.index.dayofyear
        y = data.index.year
        z = data.value.values

        xi = np.linspace(x.min(), x.max(), 1000)
        yi = np.linspace(y.min(), y.max(), 1000)
        zi = griddata((x, y), z, (xi[None, :], yi[:, None]), method=meth)

        cmap = plt.cm.get_cmap('RdYlBu')
        norm = mpl.colors.Normalize(vmin=z.min(), vmax=z.max())
        #norm = mpl.colors.LogNorm(vmin=0.1, vmax=100000)
        m = cm.ScalarMappable(norm=norm, cmap=cmap)
        m.set_array(z)

        br = plt.contourf(xi, yi, zi, color=m.to_rgba(z), cmap=cmap)
        # setup the colorbar


        cbar = plt.colorbar(m)
        cbar.set_label('Discharge (cfs)')

        plt.xlabel('Month')
        plt.ylabel('Year')
        plt.yticks(range(y.min(), y.max()))

        mons = {'Apr': 90.25, 'Aug': 212.25, 'Dec': 334.25, 'Feb': 31, 'Jan': 1, 'Jul': 181.25, 'Jun': 151.25,
                'Mar': 59.25, 'May': 120.25,
                'Nov': 304.25, 'Oct': 273.25, 'Sep': 243.25}
        monnms = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

        plt.title(self.sites.station_nm[0].title())
        tickplc = []
        plt.xticks([mons[i] for i in monnms], monnms)
        plt.grid()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号