Почему эта роза ветров не обновляется, а линия или гистограмма в порядке? - PullRequest
0 голосов
/ 07 сентября 2018

Я новичок в приборной панели, но у меня уже есть несколько вещей, и это выглядит многообещающе. Но я изо всех сил пытаюсь обновить один из моих графиков обратным вызовом. Аналогичная процедура работает для простого линейного графика, но роза ветров, созданная из этого примера, проблематична https://plot.ly/python/wind-rose-charts/. Однако, построение этой розы напрямую, работает.

import numpy as np
import dash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
import plotly.graph_objs as go

trace1 = go.Area(
    r=[77.5, 72.5, 70.0, 45.0, 22.5, 42.5, 40.0, 62.5],
    t=['North', 'N-E', 'East', 'S-E', 'South', 'S-W', 'West', 'N-W'],
    name='11-14 m/s',
    marker=dict(color='rgb(106,81,163)'))
trace2 = go.Area(
    r=[57.49999999999999, 50.0, 45.0, 35.0, 20.0, 22.5, 37.5, 55.00000000000001],
    t=['North', 'N-E', 'East', 'S-E', 'South', 'S-W', 'West', 'N-W'],
    name='8-11 m/s',
    marker=dict(color='rgb(158,154,200)'))
trace3 = go.Area(
    r=[40.0, 30.0, 30.0, 35.0, 7.5, 7.5, 32.5, 40.0],
    t=['North', 'N-E', 'East', 'S-E', 'South', 'S-W', 'West', 'N-W'],
    name='5-8 m/s',
    marker=dict(color='rgb(203,201,226)'))
trace4 = go.Area(
    r=[20.0, 7.5, 15.0, 22.5, 2.5, 2.5, 12.5, 22.5],
    t=['North', 'N-E', 'East', 'S-E', 'South', 'S-W', 'West', 'N-W'],
    name='< 5 m/s',
    marker=dict(color='rgb(242,240,247)'))

wind_data_test = [trace1, trace2, trace3, trace4]

app = dash.Dash()
app.layout = html.Div(children=[
    html.Div([dcc.RadioItems(
                id='show-period',
                options=[{'label': i, 'value': i} for i in ['day','week']],
                value='all',
                labelStyle={'display': 'inline-block'})],
             style=dict(width='50%')),
    dcc.Graph(id='ontoroctov-groph'),
    dcc.Graph(
        id = 'wind-rose-static',
        figure = go.Figure(data=wind_data_test,
                           layout=go.Layout(orientation=270,
                                            barmode='stack'))),
    dcc.Graph(id = 'wind-rose-dynamic')
])

@app.callback(
    dash.dependencies.Output('ontoroctov-groph', 'figure'),
    [dash.dependencies.Input('show-period', 'value')]
)
def update_figure(period_limit):
    return {
        'data': [
            {'x': np.arange(60),
             'y': np.random.random(60),
             'type': 'bar', 'name': 'quant 1'},
        ],
        'layout': go.Layout(title='Plot 1')}

@app.callback(
    dash.dependencies.Output('wind-rose-dynamic', 'figure'),
    [dash.dependencies.Input('show-period', 'value')]
)
def update_windrose(period_limit):
    return {
        'data':wind_data_test,
        'layout':go.Layout(orientation=270, barmode='stack')}


if __name__ == '__main__':
    app.run_server(debug=True)

Любые намеки или идеи, что я должен попробовать, добро пожаловать.

Edit: На сюжетном форуме есть информация об ограниченных возможностях полярных графов https://community.plot.ly/t/is-the-wind-rose-fully-functional/46 и о возможном обновлении в ближайшее время https://community.plot.ly/t/interactive-graphing-wind-rose/13311/2 Я упомяну здесь, когда обновление решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...