Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

564
Visualizações
Cómo obtener el rango de ángulos en gráficos polares de Plotly

Me gustaría seleccionar el rango en el eje angular en un diagrama polar Plotly , y me pregunto cuál es la forma más fácil de hacerlo. Idealmente, si hago clic y arrastro de 30 a 90 grados, me gustaría tener el rango de 30 a 90 grados; si hago clic y arrastro de 330 a 30 grados, entonces me gustaría tener el rango de 330 a 30 grados.

No sé mucho sobre Plotly , pero me pregunto si relayoutData es algo que se pueda aprovechar. Actualmente solo devuelve el rango en el eje radial (ver el rango devuelto por relayoutData en la imagen). Me pregunto si se puede cambiar un parámetro para que devuelva el rango del eje angular.

ingrese la descripción de la imagen aquí

Aquí está el código mínimo para generar la figura de arriba

 import json import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output import plotly.express as px import pandas as pd app = dash.Dash(__name__) df = px.data.wind() fig = px.scatter_polar(df, r="frequency", theta="direction") app.layout = html.Div([ dcc.Graph( id='basic-interactions', figure=fig ), html.Div(className='row', children=[ html.Div([ dcc.Markdown(""" **Zoom and Relayout Data** Click and drag on the graph to zoom or click on the zoom buttons in the graph's menu bar. Clicking on legend items will also fire this event. """), html.Pre(id='relayout-data'), ]) ]) ]) @app.callback( Output('relayout-data', 'children'), Input('basic-interactions', 'relayoutData')) def display_relayout_data(relayoutData): return json.dumps(relayoutData, indent=2) if __name__ == '__main__': app.run_server(debug=True)
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

  • idea similar, pero puntos de lazo que está utilizando. el evento es seleccionadoDatos
  • código más decodificación de una dirección de la brújula al ángulo a continuación
 import json import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output, State import plotly.express as px import plotly.graph_objects as go import pandas as pd from jupyter_dash import JupyterDash # Build App app = JupyterDash(__name__) # app = dash.Dash(__name__) df = px.data.wind() fig = px.scatter_polar(df, r="frequency", theta="direction") # data to translate named direction to degrees dfd = pd.read_html("http://snowfence.umn.edu/Components/winddirectionanddegrees.htm")[1] dfd.columns = dfd.loc[0] dfd = ( dfd.drop([0]) .dropna() .set_index("Cardinal Direction")["Degree Direction"] .apply(lambda v: pd.Series(v.split(" - ")).astype(float)) ) app.layout = html.Div( [ dcc.Graph(id="basic-interactions", figure=fig), html.Div( className="row", children=[ html.Div( [ dcc.Markdown( """ **Selected points** Use lasso to select points. Double-click de-select for reset """ ), html.Pre(id="relayout-data"), ] ) ], ), ] ) @app.callback( Output("relayout-data", "children"), Input("basic-interactions", "selectedData"), ) def display_relayout_data(selectedData): global dfd def degrees(wind_dir): return dfd.loc[wind_dir, 0].min(), dfd.loc[wind_dir, 1].max() if selectedData: wind_dir = [p["theta"] for p in selectedData["points"]] return f"{degrees(wind_dir)} {wind_dir}" else: raise dash.exceptions.PreventUpdate if __name__ == "__main__": # app.run_server(debug=True) app.run_server(mode="inline")
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda