Agradeceríamos tu apoyo para extender nuestras reseñas referente a las ciencias de la computación.
Solución:
Mi sugerencia sería usar el plotly.offline
módulo, que crea una versión fuera de línea de un gráfico para usted. La API gráfica en su sitio web es horrible (en realidad no querríamos saber qué argumentos toma cada función, ¿verdad?), Así que es mucho mejor recurrir al código fuente en Github.
Si observa el código fuente de plotly, puede ver que el offline.plot
función toma un kwarg para output_type
que es 'file'
o 'div'
:
https://github.com/plotly/plotly.py/blob/master/plotly/offline/offline.py
Así que podrías hacer:
from plotly.offline import plot
from plotly.graph_objs import Scatter
my_plot_div = plot([Scatter(x=[1, 2, 3], y=[3, 1, 6])], output_type='div')
Esto le dará el código (envuelto en
Para insertar su div en su código html usando Flask, hay algunas cosas que debe hacer.
En su archivo de plantilla html para su página de resultados, cree un marcador de posición para su código de trama. Flask usa el motor de plantillas Jinja, por lo que se vería así:
....some html...
div_placeholder
...more html...
en tu petaca views.py
archivo, debe renderizar la plantilla con el código de trazado insertado en el div_placeholder
variable:
from plotly.offline import plot
from plotly.graph_objs import Scatter
from flask import Markup
...other imports....
@app.route('/results', methods=['GET', 'POST'])
def results():
error = None
if request.method == 'POST':
my_plot_div = plot([Scatter(x=[1, 2, 3], y=[3, 1, 6])], output_type='div')
return render_template('results.html',
div_placeholder=Markup(my_plot_div)
)
# If user tries to get to page directly, redirect to submission page
elif request.method == "GET":
return redirect(url_for('submission', error=error))
Obviamente YMMV, pero eso debería ilustrar el principio básico. Tenga en cuenta que probablemente recibirá una solicitud de usuario utilizando datos POST que deberá procesar para crear el gráfico plotly.
Puedes usar el .to_html()
método:
https://plot.ly/python-api-reference/generated/plotly.graph_objects.Figure.html#plotly.graph_objects.Figure.to_html
import plotly.express as px
fig = px.scatter(x=[0, 1, 2, 3, 4], y=[0, 1, 4, 9, 16])
div = fig.to_html(full_html=False) # Get the to send to your frontend and embed in an html page
Aquí tienes las comentarios y puntuaciones
Si crees que te ha resultado de provecho este artículo, sería de mucha ayuda si lo compartes con el resto entusiastas de la programación de esta manera contrubuyes a extender nuestra información.
¡Haz clic para puntuar esta entrada!(Votos: 0 Promedio: 0)
Utiliza Nuestro Buscador