1 说明
1.1 plotly高级可视化作图与flask框架web结合,代码拿来即可使用。
1.2 环境:熟悉我的都知道,linux操作系统、python3.8.
1.3 相关安装:省略,简单。
2 柱状图为基本例子
2.1 文件结构
2.2 bar.html代码:代码基本不变,仅仅需要对相关文字进行修改,即可,后续注意名字对应修改即可。(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> <!--导入在线js库文件--> <script type="text/javascript" src="https://cdn.plot.ly/plotly-latest.min.js"></script></head><body><div class='content'><h2>用Python和plotly结合flask可视化作图</h2><div><p> 文字部分,可自定义设置。</p><p>文字部分,可自定义设置:</p></div> <div class='graph'> <!--展现可视化图标部分--> <h1> {{context.graph |safe }} </h1> </div><div> <p>从图上可以看出,文字部分,可自定义设置</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 #---以下因为图形和数据不同而不同,以下需要修改--- trace0 = go.Bar( x=['A类户型', 'B类户型', 'C类户型'], y=[20, 14, 23], text=['27%市场占有率', '24%市场占有率', '19%市场占有率'], 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) #---以上需要复制修改的代码块--- div = pyplt(fig, output_type='div', include_plotlyjs=False, auto_open=False, show_link=False) context = {} context['graph'] = div #注意名字需要相应的修改:此处为bar.html,记住将template中的也要相应修改 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%市场占有率', '24%市场占有率', '19%市场占有率'], 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
#定义数值 labels = ['产品1','产品2','产品3','产品4','产品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的散点图') fig = go.Figure(data = data, layout = layout)
6 shanpie.py需要修改的代码部分:注意文件名改成:shanpie.html
#数据定义 labels = ['产品1', '产品2','产品3', '产品4', '产品5'] values = [30, 25, 15, 22, 8] colors = ['#FFFF00', '#FF0000', '#E066FF', '#0D0D0D'] #trace或者data数据定义 trace = [go.Pie( labels = labels, values = values, rotation = 30, opacity = 1, showlegend = False, #图例显示否,True就是显示 pull = [0.1,0,0,0,0], #0.1为第一组数据出来pull=产品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)
以上其他图略。
自己整理,喜欢就点赞、转发和分享。
Copyright © 36加盟网
全国免费服务热线:130*1234567
友情提示:投资有风险,咨询请细致,以便成功加盟。
(提交后,企业招商经理马上给您回拨)