shanpie,山丿,36創(chuàng)業(yè)加盟網(wǎng)給大家?guī)?lái)詳細(xì)的介紹,讓更多的人可以參考:shanpie,山丿。
1 說(shuō)明
1.1 plotly高級(jí)可視化作圖與flask框架web結(jié)合,代碼拿來(lái)即可使用。
1.2 環(huán)境:熟悉我的都知道,linux操作系統(tǒng)、python3.8.
1.3 相關(guān)安裝:省略,簡(jiǎn)單。
2 柱狀圖為基本例子
2.1 文件結(jié)構(gòu)
2.2 bar.html代碼:代碼基本不變,僅僅需要對(duì)相關(guān)文字進(jìn)行修改,即可,后續(xù)注意名字對(duì)應(yīng)修改即可。(bar.html和bar.py)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Plotly嵌入Flask可視化作圖案例</title> <style type="text/css"> div.content {padding: 1em 5em;} div.graph {margin: 10px auto; width: 70%;} </style> <!--導(dǎo)入在線js庫(kù)文件--> <script type="text/javascript" src="https://cdn.plot.ly/plotly-latest.min.js"></script></head><body><div class='content'><h2>用Python和plotly結(jié)合flask可視化作圖</h2><div><p> 文字部分,可自定義設(shè)置。</p><p>文字部分,可自定義設(shè)置:</p></div> <div class='graph'> <!--展現(xiàn)可視化圖標(biāo)部分--> <h1> {{context.graph |safe }} </h1> </div><div> <p>從圖上可以看出,文字部分,可自定義設(shè)置</p></div></div></body></html>
2.3 bar.py代碼:
from flask import render_templatefrom flask import Flaskimport plotly as pyimport plotly.graph_objs as goapp = Flask(__name__)@app.route('/')def index(): pyplt = py.offline.plot #---以下因?yàn)閳D形和數(shù)據(jù)不同而不同,以下需要修改--- trace0 = go.Bar( x=['A類戶型', 'B類戶型', 'C類戶型'], y=[20, 14, 23], text=['27%市場(chǎng)占有率', '24%市場(chǎng)占有率', '19%市場(chǎng)占有率'], marker=dict( color='rgb(158,202,225)', line=dict( color='rgb(8,48,107)', width=1.5, ) ), opacity=0.6 ) data = [trace0] layout = go.Layout( title='xxx可視化作圖', ) fig = go.Figure(data=data, layout=layout) #---以上需要復(fù)制修改的代碼塊--- div = pyplt(fig, output_type='div', include_plotlyjs=False, auto_open=False, show_link=False) context = {} context['graph'] = div #注意名字需要相應(yīng)的修改:此處為bar.html,記住將template中的也要相應(yīng)修改 return render_template("bar.html", title = 'Home', context = context) if __name__ == '__main__': app.run()
2.4 效果圖
3 line.py需要修改的代碼部分:注意文件名改成:line.html
trace0 = go.Line( x=['A類戶型', 'B類戶型', 'C類戶型'], y=[20, 14, 23], text=['27%市場(chǎng)占有率', '24%市場(chǎng)占有率', '19%市場(chǎng)占有率'], marker=dict( color='rgb(158,202,225)', line=dict( color='rgb(8,48,107)', width=1.5, ) ), opacity=0.6 ) data = [trace0] layout = go.Layout( title='xxx可視化作圖', ) fig = go.Figure(data=data, layout=layout)
4 pie.py需要修改的代碼部分:注意文件名改成:pie.html
#定義數(shù)值 labels = ['產(chǎn)品1','產(chǎn)品2','產(chǎn)品3','產(chǎn)品4','產(chǎn)品5'] values = [38.7,15.33,19.9,8.6,17.47] #定義trace或者data trace = [go.Pie(labels=labels, values=values)] layout = go.Layout(title = 'plotly的pie圖') fig = go.Figure(data = trace, layout = layout)
5 scatter.py需要修改的代碼部分:注意文件名改成:scatter.html
import numpy as np data = go.Scatter( y = np.random.randn(500), mode = 'markers', marker = dict( size = 16, color = np.random.randn(500), colorscale = 'Viridis', showscale = True ) ) layout = go.Layout(title = 'plotly的Scatter的散點(diǎn)圖') fig = go.Figure(data = data, layout = layout)
6 shanpie.py需要修改的代碼部分:注意文件名改成:shanpie.html
#數(shù)據(jù)定義 labels = ['產(chǎn)品1', '產(chǎn)品2','產(chǎn)品3', '產(chǎn)品4', '產(chǎn)品5'] values = [30, 25, 15, 22, 8] colors = ['#FFFF00', '#FF0000', '#E066FF', '#0D0D0D'] #trace或者data數(shù)據(jù)定義 trace = [go.Pie( labels = labels, values = values, rotation = 30, opacity = 1, showlegend = False, #圖例顯示否,True就是顯示 pull = [0.1,0,0,0,0], #0.1為第一組數(shù)據(jù)出來(lái)pull=產(chǎn)品1=30的那一組 hoverinfo = 'label+percent', textinfo = 'percent', # textinfo = 'value', textfont = dict(size = 30, color = 'white'), marker = dict(colors = colors, line = dict(color = '#000000', width = 2)) ) ] fig = go.Figure(data = trace)
7 stackbar.py需要修改的代碼部分:注意文件名改成:lstackbar.html
trace1 = go.Bar( x=['giraffes', 'orangutans', 'monkeys'], y=[20, 14, 23], name='SF Zoo' ) trace2 = go.Bar( x=['giraffes', 'orangutans', 'monkeys'], y=[12, 18, 29], name='LA Zoo' ) data = [trace1, trace2] #堆疊柱狀圖 layout = go.Layout(barmode='stack',title = 'plotly的堆疊柱狀圖') fig = go.Figure(data=data, layout=layout)
以上其他圖略。
自己整理,喜歡就點(diǎn)贊、轉(zhuǎn)發(fā)和分享。
總結(jié):以上內(nèi)容就是shanpie,山丿詳細(xì)介紹,如果您對(duì)創(chuàng)業(yè)項(xiàng)目感興趣,可以咨詢客服或者文章下面留言,我們會(huì)第一時(shí)間給您項(xiàng)目的反饋信息。
我對(duì)加盟感興趣,馬上免費(fèi)通話或留言!
(24小時(shí)內(nèi)獲得企業(yè)的快速回復(fù))
我們立即與您溝通
溫馨提示:
1.此次通話將不會(huì)產(chǎn)生任何費(fèi)用, 請(qǐng)放心使用
7x24小時(shí)電話咨詢
130*1234567