Mercurial > repos > climate > climate_stripes
comparison climate_stripes.py @ 2:7f84fb995f4e draft default tip
planemo upload for repository https://github.com/NordicESMhub/galaxy-tools/tree/master/tools/climate-stripes commit e4c144851549600ffde5bcf875304d5edd98e2b1
| author | climate |
|---|---|
| date | Sat, 09 Jul 2022 09:01:30 +0000 |
| parents | 645e533f8269 |
| children |
comparison
equal
deleted
inserted
replaced
| 1:645e533f8269 | 2:7f84fb995f4e |
|---|---|
| 70 self.plot_format = self.format | 70 self.plot_format = self.format |
| 71 else: | 71 else: |
| 72 self.plot_format = plot_format.replace('X', '%') | 72 self.plot_format = plot_format.replace('X', '%') |
| 73 | 73 |
| 74 def read_data(self): | 74 def read_data(self): |
| 75 self.data = pd.read_csv(self.input, sep='\t') | 75 if self.xname is not None: |
| 76 self.data = pd.read_csv(self.input, sep='\t', index_col=self.xname, infer_datetime_format=True) | |
| 77 else: | |
| 78 self.data = pd.read_csv(self.input, sep='\t') | |
| 76 | 79 |
| 77 def create_stripes(self): | 80 def create_stripes(self): |
| 78 data = np.zeros((2, self.data[self.valname].shape[0]), dtype='float') | 81 data = np.zeros((2, self.data[self.valname].shape[0]), dtype='float') |
| 79 data[:] = np.NaN | 82 data[:] = np.NaN |
| 80 data[0, :] = self.data[self.valname] | 83 data[0, :] = self.data[self.valname] |
| 84 plt.pcolor(data, cmap=self.cmap, | 87 plt.pcolor(data, cmap=self.cmap, |
| 85 vmin=self.data[self.valname].quantile(q=0.01), | 88 vmin=self.data[self.valname].quantile(q=0.01), |
| 86 vmax=self.data[self.valname].quantile(q=0.99)) | 89 vmax=self.data[self.valname].quantile(q=0.99)) |
| 87 if self.title: | 90 if self.title: |
| 88 plt.title(self.title) | 91 plt.title(self.title) |
| 89 if self.xname: | 92 if self.xname is not None: |
| 90 nrange = self.data.index.values | 93 nrange = self.data.index.values |
| 91 n = int(np.floor((nrange.max() - nrange.min())/int(self.nxsplit))) | 94 date_list = pd.to_datetime(nrange[::int(self.nxsplit)], format=self.format) |
| 92 date_list = self.data[self.xname].loc[::n].apply( | |
| 93 lambda x: pd.to_datetime(str(x), | |
| 94 format=self.format)) | |
| 95 date_list = [i.strftime(self.plot_format) for i in date_list] | 95 date_list = [i.strftime(self.plot_format) for i in date_list] |
| 96 nval = int(self.data[self.xname].loc[::n].shape[0]) | 96 ax.set_xticks(np.arange(0, len(nrange), int(self.nxsplit)), date_list) |
| 97 ax.xaxis.set_major_locator(plt.MaxNLocator(nval)) | |
| 98 ax.xaxis.set_ticklabels(date_list) | |
| 99 ax.xaxis.set_tick_params(rotation=45) | 97 ax.xaxis.set_tick_params(rotation=45) |
| 100 else: | 98 else: |
| 101 ax.set_xticks([]) | 99 ax.set_xticks([]) |
| 102 ax.set_yticks([]) | 100 ax.set_yticks([]) |
| 103 fig.tight_layout() | 101 fig.tight_layout() |
