1 说明 1.1 plotly高级可视化作图与flask框架web结合,代码拿来即可使用。 1.2 环境:熟悉我的都知道,linux操作系统、python3.8. 1.3 相关安装:省略,简单。 2 柱状图为基本例子 2.1 文件结构 2.2 bar.html代码:代码基本不变,仅仅需要对相关文字进行修改,即可,后续注意名字对应修改即可。(bar.html和bar.py)Plotly嵌入Flask可视化作图案例 用Python和plotly结合flask可视化作图
文字部分,可自定义设置。
文字部分,可自定义设置:
{{context.graph |safe }}
从图上可以看出,文字部分,可自定义设置 2.3 bar.py代码:from flask import render_template from flask import Flask import plotly as py import plotly.graph_objs as go app = 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) #---以上需要复制修改的代码块--- p = pyplt(fig, output_type="p", include_plotlyjs=False, auto_open=False, show_link=False) context = {} context["graph"] = p #注意名字需要相应的修改:此处为bar.html,记住将template中的也要相应修改 return render_template("bar.html", title = "Home", context = context) if __name__ == "__main__": app.run() 2.4 效果图 3 line.py需要修改的代码部分:注意文件名改成:line.htmltrace0 = 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) 以上其他图略。 自己整理,喜欢就点赞、转发和分享。