コード例 #1
0
ファイル: PolarPlot.py プロジェクト: biodata-alfarizi/QGIS
    def processAlgorithm(self, parameters, context, feedback):
        source = self.parameterAsSource(parameters, self.INPUT, context)
        namefieldname = self.parameterAsString(parameters, self.NAME_FIELD,
                                               context)  # NOQA  FIXME unused?
        valuefieldname = self.parameterAsString(parameters, self.VALUE_FIELD,
                                                context)

        output = self.parameterAsFileOutput(parameters, self.OUTPUT, context)

        values = vector.values(source, valuefieldname)

        data = [
            go.Area(r=values[valuefieldname],
                    t=np.degrees(
                        np.arange(0.0, 2 * np.pi,
                                  2 * np.pi / len(values[valuefieldname]))))
        ]
        plt.offline.plot(data, filename=output, auto_open=False)

        return {self.OUTPUT: output}
コード例 #2
0
def wind_rose_plot(df_wind_rose):
    data = []
    wind_rose = pd.DataFrame({
        'wind_dir_cat':
        np.array(
            'N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW'.split()),
        'wind_dir': [0] * 16
    })
    i = 0
    bfs = df_wind_rose.groupby('wind_speed_bfs')
    color = cl.scales[str(df_wind_rose.wind_speed_bfs.unique().shape[0] +
                          1)]['qual']['Set1']
    for bfs_wind, group_bfs in bfs:
        df1 = pd.DataFrame({
            'wind_dir_cat':
            group_bfs.wind_dir_cat.value_counts().index,
            'wind_dir':
            group_bfs.wind_dir_cat.value_counts().values
        })
        df2 = pd.merge(wind_rose, df1, how='left', on='wind_dir_cat').fillna(0)
        data.append(
            go.Area(t=df2.wind_dir_cat,
                    r=df2.wind_dir_y.fillna(0),
                    marker=dict(color=color[i]),
                    name=bfs_wind))
        i += 1
    layout_windrose = dict(
        title='Rosa de los vientos de ' +
        df_wind_rose.model_name.iloc[0].title() + 'en ' +
        df_wind_rose.name.iloc[0].title(),
        orientation=270,
        barmode='stack',
    )
    plot(dict(data=data, layout=layout_windrose),
         filename=df_wind_rose.model_name.iloc[0].title() + '_' +
         df_wind_rose.name.iloc[0].title() + 'windrose.html',
         auto_open=False,
         image='png',
         image_filename=df_wind_rose.model_name.iloc[0].title() + '_' +
         df_wind_rose.name.iloc[0].title())
コード例 #3
0
cardinal_pops = pd.DataFrame({'direction': dirs})

sums = pop12.groupby(['income', 'card'])['population'].sum().reset_index()
sums = sums.drop(22)

min_max = sklearn.preprocessing.MinMaxScaler()
X = sums['population']
X = X.values.reshape(-1, 1)
sums['popscaled'] = min_max.fit_transform(X)

sums['poppercent'] = sums['population']/(7128176935)

trace1 = go.Area(
    r=list(sums[sums['income'] == 'High income']['poppercent']),
    t=list(sums[sums['income'] == 'High income']['card']),
    name='High Income',
    marker=dict(
        color='#F79D84'
    )
)
trace2 = go.Area(
    r=list(sums[sums['income'] == 'Upper middle income']['poppercent']),
    t=list(sums[sums['income'] == 'Upper middle income']['card']),
    name='Upper Middle Income',
    marker=dict(
        color='#6184D8'
    )
)
trace3 = go.Area(
    r=list(sums[sums['income'] == 'Lower middle income']['poppercent']),
    t=list(sums[sums['income'] == 'Lower middle income']['card']),
    name='Lower Middle Income',
コード例 #4
0
    def windrose(self, column, color=None):
        color, _ = self.__get_base_args(color, 1)
        args = dict(t=self.df.index, r=list(self.df[column]), marker={'color': color})

        self.__add_series(go.Area(args))