都下班了老板让我做一个可视化报表,还好我会Python,分分钟就完成了

43 阅读4分钟

{

"Fruit": ["苹果", "橙子", "香蕉", "苹果", "橙子", "香蕉"],

"Amount": [4.2, 1.0, 2.1, 2.32, 4.20, 5.0],

"City": ["北京", "北京", "北京", "上海", "上海", "上海"],

}

)

print(df)

结果如下,3列6行,包含水果、销售额、城市列。

处理一下相关的数据,水果单数、销售总额、城市单数、变量数。

水果单数

fruit_count = df.Fruit.count()

销售总额

total_amt = df.Amount.sum()

城市单数

city_count = df.City.count()

变量数

创建图表实例,一个柱状图、一个箱型图。

柱状图1, 不同水果不同城市的销售额

fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")

箱型图1, 不同城市的销售额分布情况

fig1 = px.box(df, x="City", y="Amount", color="City")

效果如下。

剩下就是文字模块啦,文字+CSS样式。

其中排版布局美化,通过Tailwindcss来实现。

app.layout = html.Div(

html.Div(

children=[

html.Div(

children=[

html.H1(children="水果销售--可视化报表", className=" py-3 text-5xl font-bold text-gray-800"),

html.Div(

children="""Python with Dash = 💝 .""",

className="text-left prose prose-lg text-2xl py-3 text-gray-600",

),

],

className="w-full mx-14 px-16 shadow-lg bg-white -mt-14 px-6 container my-3 ",

),

html.Div(

html.Div(

children=[

html.Div(

children=[

f"¥{total_amt}",

html.Br(),

html.Span("总销售额", className="text-lg font-bold ml-4"),

],

className=" shadow-xl py-4 px-14 text-5xl bg-[#76c893] text-white font-bold text-gray-800",

),

html.Div(

children=[

fruit_count,

html.Br(),

html.Span("水果数量", className="text-lg font-bold ml-4"),

],

className=" shadow-xl py-4 px-24 text-5xl bg-[#1d3557] text-white font-bold text-gray-800",

),

html.Div(

children=[

variables,

html.Br(),

html.Span("变量", className="inline-flex items-center text-lg font-bold ml-4"),

],

className=" shadow-xl py-4 px-24 text-5xl bg-[#646ffa] text-white font-bold text-gray-800",

),

html.Div(

children=[

city_count,

html.Br(),

html.Span("城市数量", className="text-lg font-bold ml-4"),

],

className="w-full shadow-xl py-4 px-24 text-5xl bg-[#ef553b] text-white font-bold text-gray-800",

),

],

className="my-4 w-full grid grid-flow-rows grid-cols-1 lg:grid-cols-4 gap-y-4 lg:gap-[60px]",

),

className="flex max-w-full justify-between items-center ",

),

html.Div(

children=[

html.Div(

children=[

dcc.Graph(id="example-graph", figure=fig),

],

className="shadow-xl w-full border-3 rounded-sm",

),

html.Div(

children=[

dcc.Graph(id="example-graph1", figure=fig1),

],

className="w-full shadow-2xl rounded-sm",

),

],

className="grid grid-cols-1 lg:grid-cols-2 gap-4",

),

],

className="bg-[#ebeaee] flex py-14 flex-col items-center justify-center ",

),

className="bg-[#ebeaee] container mx-auto px-14 py-4",

)

效果如下。

最后启动程序代码。

if name == 'main':

debug模式, 端口7777

app.run_server(debug=True, threaded=True, port=7777)

正常模式, 网页右下角的调试按钮将不会出现

app.run_server(port=7777)

这样就能在本地看到可视化大屏页面,浏览器打开如下地址。

http://127.0.0.1:7777

以后制作的图表不仅能在线展示,还能实时更新,属实不错~

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

了解详情:docs.qq.com/doc/DSnl3ZG…