Próbuję osadzić spiskowy wykres kołowy w szablonie html Django. Działa to dobrze, gdy wykres jest tworzony w "trybie online" (tzn. Fragment HTML jest przechowywany na silnym serwerze), ale nie w trybie offline (to znaczy, gdy html jest przechowywany lokalnie). W tym ostatnim przypadku wykres nie pojawia się. Chcę móc przechowywać html na moim lokalnym serwerze i osadzać tam wątki.Osadzanie wykresu Plotly w szablonie Django
Oto nieco, że działa:
import plotly.plotly as py
import plotly.graph_objs as go
labels = [1,2,3,4]
values = [10,20,30,40]
ndata = 100
fig = {
'data': [{'labels': labels,
'values': values,
'type': 'pie',
'textposition':"none",
'textinfo':"percent",
'textfont':{'size':'12'},
'showlegend':'false'}],
'layout': {'title': 'Total:'+str(ndata),
'showlegend':'false',
'height':'200',
'width':'200',
'autosize':'false',
'margin':{'t':'50','l':'75','r':'0','b':'10'},
'separators':'.,'}
}
plotly_url = py.plot(fig, filename='myfile', auto_open=False)
pie_url = '<iframe width="200" height="200" frameborder="0" seamless="seamless" scrolling="no" src='+plotly_url+'.embed?width=200&height=200&link=false&showlegend=false></iframe>'
Zauważ, że pie_url jest przekazywana jako ciąg znaków w polu http czynią wniosek w Django. Szablon interpretuje ciąg jako html przy użyciu | bezpieczny tag, czyli {{pie_url | safe}}.
Oto nieco, że nie działa:
from plotly.offline import download_plotlyjs, plot
import plotly.graph_objs as go
labels = [1,2,3,4]
values = [10,20,30,40]
ndata = 100
fig = {
'data': [{'labels': labels,
'values': values,
'type': 'pie',
'textposition':"none",
'textinfo':"percent",
'textfont':{'size':'12'},
'showlegend':'false'}],
'layout': {'title': 'Total:'+str(ndata),
'showlegend':'false',
'height':'200',
'width':'200',
'autosize':'false',
'margin':{'t':'50','l':'75','r':'0','b':'10'},
'separators':'.,'}
}
plotly_url = plot(fig, filename='file:///home/website/pie.html', auto_open=False)
pie_url = '''<iframe width="200" height="200" frameborder="0" seamless="seamless" scrolling="no" src=\"'''+plotly_url+'''.embed?width=200&height=200&link=false&showlegend=false\"></iframe>'''
Wszelkie porady będą mile widziane.
jesteś w stanie wyprowadzać go do pliku .html? – frankenapps
Cześć, Tak, plik HTML zostaje utworzony. Ale nie wyświetla się, gdy Django go renderuje (jest to linia pie_url w oryginalnym wpisie). – Hooloovoo