Mam problem dotyczący wep2py i biblioteki fabularnej. Próbuję wyświetlić podstawową tabelę wykresów w web2py. Zrobiłem tabelę w moim kontrolerze Pythona z biblioteką plotly:
def test_table():
fig = go.Figure(data=[go.Table(header=dict(values=['A Scores', 'B Scores']),
cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))
])
return fig.show()
# fig.show() gives the same result
Zgodnie z dokumentacją ploty, ten kod powinien wystarczyć do pokazania liczby. Umieściłem to w funkcji, ale myślę, że nie powinno to stanowić problemu.
Ale kiedy przekazuję tę funkcję do interfejsu użytkownika za pomocą parametru, moja przeglądarka próbuje otworzyć nową kartę, a wynik na karcie, na której działa mój web2py, pokazuje po prostu „Brak”.
1 odpowiedź
Wykonanie return fig.show()
powoduje problem. fig.show()
powoduje otwarcie wykresu w przeglądarce po uruchomieniu kodu na komputerze, ale zwraca None
, więc nie będzie działać na serwerze.
Sugeruję zapisanie statycznego pliku HTML, który możesz następnie obsłużyć lub możesz mieć funkcję zwracającą ciąg html
. Mam nadzieję, że to pomoże
import plotly.graph_objs as go
from plotly.offline import plot
fig1 = go.Figure(data=[{'type': 'bar', 'y': [1, 3, 2]}],
layout={'height': 400})
fig2 = go.Figure(data = [go.Table(header=dict(values=['A Scores', 'B Scores']),
cells=dict(values=[[100, 90, 80, 90], [95, 85, 75, 95]]))])
div1 = plot(fig1, output_type='div', include_plotlyjs=False)
div2 = plot(fig2, output_type='div', include_plotlyjs=False)
html = """\
<html>
<head>
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
</head>
<body>
{div1}
{div2}
</body>
</html>
""".format(div1=div1, div2=div2)
with open('multi_plot.html', 'w') as f:
f.write(html)
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.