在数据展示中使用图表来分享自己的见解,是个非常常见的方法。

这也是Tableau、Power BI这类商业智能仪表盘持续流行的原因之一,这些工具为数据提供了精美的图形解释。

当然了,这些工具也有着不少缺点,比如不够灵活,无法让你自己创建设计。

当你对图表展示要求定制化时,编程也许就比较适合你,比如Echarts、D3.js。

今天给大家介绍一个用Python制作可视化报表的案例,主要是使用到Dash+Tailwindcss。

可视化报表效果如下,水果销售情况一览~

Dash是基于Plotly搭建的Dashbord框架,支持Python、R和Julia。使用Dash,你可以创建自定义响应式仪表板。

相关文档

说明:https://dash.plotly.com/introduction

案例:https://dash.gallery/Portal/

源码:https://github.com/plotly/dash-sample-apps/

Tailwindcss则是一个实用程序优先的CSS框架,用于快速构建自定义界面。

“这种框架只适用于那种只会实现页面布局美化元素而不关心实现业务逻辑的前端”。

看看别人对它的评价,对于无交互的图表,完全足够了。

相关文档

说明:https://www.tailwindcss.cn/docs

GitHub:https://github.com/tailwindlabs/tailwindcss

下面就给大家讲解下如何通过Dash+Tailwindcss搭建可视化报表~

首先安装相关的Python库,然后导入。

import dash
import pandas as pd
import plotly.express as px
from dash import dcc, html

使用到了Pandas、Plotly、dash这三个Python库。

我们需要把Tailwindcss的CDN作为external_script,并将其传递给我们的应用程序实例,这样我们才可以成功使用Tailwindcss。

# 导入tailwindcss的CDN
external_script = ["https://tailwindcss.com/", {"src": "https://cdn.tailwindcss.com"}]# 创建Dash实例
app = dash.Dash(__name__,external_scripts=external_script,
)
app.scripts.config.serve_locally = True

使用Pandas创建水果销售数据,随便虚构了一个。

# 创建数据
df = pd.DataFrame({"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()
# 变量数
variables = df.shape[1]

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

# 柱状图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模式, 端口7777app.run_server(debug=True, threaded=True, port=7777)# 正常模式, 网页右下角的调试按钮将不会出现# app.run_server(port=7777)

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

http://127.0.0.1:7777

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

好了,今天的分享到此结束,大家可以自行去动手练习。

END -

对比Excel系列图书累积销量达15w册,让你轻松掌握数据分析技能,可以在全网搜索书名进行了解:

用Python制作酷炫的可视化报表。相关推荐

  1. 用 Python 制作酷炫的可视化大屏,特简单!

    作者 | 小F 来源 | 法纳斯特 在数据时代,我们每个人既是数据的生产者,也是数据的使用者,然而初次获取和存储的原始数据杂乱无章.信息冗余.价值较低. 要想数据达到生动有趣.让人一目了然.豁然开朗的 ...

  2. 用Python制作酷炫的可视化大屏,特简单!

    在数据时代,我们每个人既是数据的生产者,也是数据的使用者,然而初次获取和存储的原始数据杂乱无章.信息冗余.价值较低. 要想数据达到生动有趣.让人一目了然.豁然开朗的效果,就需要借助数据可视化. 以前给 ...

  3. opencv极坐标转换成直角坐标_媲美 PS,用 Python 制作酷炫极坐标全景图

    点击上方"Python数据之道",选择"星标公众号" 收藏文章的同时,不要忘记「在看」 媲美 PS, 用 Python 制作酷炫极坐标全景图 0 概述  今天要 ...

  4. Python 图像 一样大小_媲美 PS,用 Python 制作酷炫极坐标全景图

    点击上方"Python数据之道",选择"星标公众号" 收藏文章的同时,不要忘记「在看」 媲美 PS, 用 Python 制作酷炫极坐标全景图 0 概述  今天要 ...

  5. 使用Python制作酷炫二维码(myqr)

    使用Python制作酷炫二维码 本篇参考自微信公众号,二三四张图片有改博主知乎的链接哦,https://mp.weixin.qq.com/s/Fq6_KKeN5T28DbfyDsGYDw 平时你见到的 ...

  6. Python制作酷炫的动画效果

    1 引言 利用Python的Matplotlib-Animation库可以制作酷炫的数学公式动画,官方教程可访问链接. 本文为了清晰说明如何利用Animation类来实现动画效果,这里采用介绍一个点沿 ...

  7. 可视化 | Python制作最炫3D可视化地图

    文章目录 1. 环境安装 1.1 安装 pyecharts 1.2 安装地图扩展包 2. 广东省3D地图 3. 北京市3D地图 4. 中国3D地图-行政区 5. 中国3D地图-数据可视化 大家好,我是 ...

  8. 专属微信二维码python制作_教你使用Python制作酷炫二维码

    这篇文章讲的是如何利用python制作狂拽酷炫吊炸天的二维码,非常有趣哦! 可能你见过的二维码大多长这样: 稍微好看点的长这样: 普普通通,平平凡凡,没什么特色... 但,如果二维码长这样呢! 或者这 ...

  9. 教你使用Python制作酷炫二维码

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 察己则可以知人,察今则可以知古. ...

最新文章

  1. JDK1.7安装配置环境变量+图文说明Jmeter安装
  2. 字节跳动---万万没想到之聪明的编辑
  3. mysql spj_解决Electron启动出现短暂的白屏 - SegmentFault 思否
  4. 从别的地方转来的 网址
  5. Java加密与解密的艺术~安全协议~模型分析
  6. java query包,有没有Java的http_build_query函数的Java等价物?
  7. 【华为云技术分享】iSulad轻量化容器实践解析
  8. 其中一个页签慢_房建工程全套技术交底,720页Word版表格,各分部分项全覆盖...
  9. 【思维题 单调栈】loj#2430. 「POI2014」沙拉餐厅 Salad Bar
  10. Win7点击文件夹右键可打开cmd控制台,并获取当前目录
  11. WPF自定义路由事件(二)
  12. 查询工资最低的3名员工的职工工号、姓名和收入_2018年31省最低工资排名!武汉工资低于这个数就违法!...
  13. 长安链ChainMaker在线合约编辑器-SmartEditor
  14. OpenCV——Haar特征
  15. MongoDB 清理数据
  16. angularjs的三目运算
  17. C语言求数列最小公倍数,C语言复习---获取最小公倍数(公式法:两个数相乘等于最小公倍数乘以最大公约数)...
  18. 3P(PS、PR、PDF编辑器Acrobat)中的基基本操作(一)
  19. LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS论文阅读
  20. Android P中的AVB校验(一)

热门文章

  1. mysql galera 安装_MySQL Galera 集群的安装过程
  2. 【转】vue项目打包上传的步骤和方法
  3. 用Scrutor来简化ASP.NET Core的DI注册
  4. Jmeter(一)-精简测试脚本
  5. Sharepoint学习笔记—Ribbon系列-- 3.在Ribbon中找到正确的Location
  6. Echarts实例中json数据查找
  7. 6.Xilinx RapidIO核仿真与包时序分析
  8. Asp.Net Core 404处理
  9. sql中的exsits和not exsits
  10. JMeter中3种参数值的传递