Tôi đang cố nhúng biểu đồ hình tròn vào một mẫu html Django. Điều này hoạt động tốt khi biểu đồ được tạo trong 'chế độ trực tuyến' (tức là đoạn mã html được lưu trữ trên máy chủ sơ đồ) nhưng không được lưu trong 'chế độ ngoại tuyến' (tức là khi html được lưu trữ cục bộ). Trong trường hợp sau, biểu đồ không xuất hiện. Tôi muốn để có thể lưu trữ các html trên máy chủ địa phương của tôi và nhúng các lô từ đó.Nhúng biểu đồ Plotly vào một mẫu Django
Dưới đây là bit mà làm việc:
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>'
Lưu ý rằng pie_url được chuyển dưới dạng chuỗi trong Http làm theo yêu cầu trong Django. Mẫu diễn giải chuỗi dưới dạng html bằng cách sử dụng | thẻ an toàn, tức là {{pie_url | safe}}.
Dưới đây là bit điều đó không làm việc:
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>'''
Lời khuyên nào sẽ được đánh giá cao.
Bạn có thể đầu ra nó vào một file .html? – frankenapps
Xin chào, Có, tệp html được tạo. Nhưng nó không hiển thị khi Django làm cho nó (đây là dòng pie_url trong bài gốc.) – Hooloovoo