pyecharts 可视化大屏制作
官方文档
简介 - pyecharts - A Python Echarts Plotting Library built with love.
先导入需要用到的包
import pyecharts.options as opts
from pyecharts.charts import Map3D, Bar, Line, Pie, Radar, Page
from pyecharts.faker import Faker
from pyecharts.globals import ChartType
先做个大标题吧,由于pyecharts没有标题组件,所以我决定用饼图的标题来做大标题。
# 标题
def title() -> Pie():title = (Pie(init_opts=opts.InitOpts(chart_id='view_title',width='100vw',# theme='dark',)).set_global_opts(title_opts=opts.TitleOpts(title="某机场可视化大屏",title_textstyle_opts=opts.TextStyleOpts(font_size=32,# color='white'),# 标题居中pos_left='center'),legend_opts=opts.LegendOpts(is_show=False)))return title
绘制个3D地图用来看路线
# 中间地图
def map3d() -> Map3D:data_pair = [[(113.2700, 23.1300), (118.8062, 31.9208)], [(125.8154, 44.2584), (87.9236, 43.5883)],[(117.4219, 39.4189), (108.3843, 30.4397)], [(91.1100, 29.9700), (103.9526, 30.7617)],[(108.4790, 23.1152), (117.2900, 32.0581)], [(113.0823, 28.2568), (110.3893, 19.8516)],[(101.4038, 36.8207), (119.4543, 25.9222)], [(116.0046, 28.6633), (110.3467, 41.4899)],]data_pair1 = [[(110.3653, 21.2662), (106.2428, 38.4731)], [(114.5395, 38.0364), (108.2733, 22.7812)]]map3d = (# 3D地图Map3D(# 初始化配置项init_opts=opts.InitOpts(# theme='dark', # 图表主题 white darkchart_id='view_map3d'))# !!!!全局配置项!!!!.set_global_opts(# 标题配置项title_opts=opts.TitleOpts(title="", # 主标题),legend_opts=opts.LegendOpts(border_width=0,pos_bottom='50px',pos_left='500px')).add_schema(# 地图类型maptype='china',# 图元样式配置项itemstyle_opts=opts.ItemStyleOpts(# 图形的颜色color="#1661AB",# 描边宽度,默认不描边。border_width=0.8,# 图形的描边颜色。支持的颜色格式同 color,不支持回调函数。border_color="rgb(62,215,213)"),)# 数据配置.add(# 系列名称,用于 tooltip 的显示,legend 的图例筛选series_name='类型1',# 数据项 (坐标点名称,坐标点值)data_pair=data_pair,# 叠加图的类型(目前只支持 Bar3D,Line3D,Lines3D,Scatter3D)type_=ChartType.LINES3D,# 仅在 Lines3D 起作用# 飞线的尾迹特效,参考 `series_options.Line3DEffectOpts`effect=opts.Lines3DEffectOpts(# 是否显示尾迹特效,默认不显示。is_show=True,# 尾迹特效的周期。period=4,# 尾迹的宽度。trail_width=3,# 尾迹的长度,范围从 0 到 1,为线条长度的百分比trail_length=0.5,# 尾迹的颜色,默认跟线条颜色相同。trail_color="white",# 尾迹的不透明度,默认跟线条不透明度相同trail_opacity=1,),# 仅在 Line3D,Lines3D 起作用# 飞线的线条样式,参考 `series_options.LineStyleOpts`linestyle_opts=opts.LineStyleOpts(# 是否显示is_show=True,# 线宽width=3,# 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形opacity=0.5,# 线的颜色color="#00ad5c",),).add(# 系列名称,用于 tooltip 的显示,legend 的图例筛选series_name='类型2',# 数据项 (坐标点名称,坐标点值)data_pair=data_pair1,# 叠加图的类型(目前只支持 Bar3D,Line3D,Lines3D,Scatter3D)type_=ChartType.LINES3D,# 仅在 Lines3D 起作用# 飞线的尾迹特效,参考 `series_options.Line3DEffectOpts`effect=opts.Lines3DEffectOpts(# 是否显示尾迹特效,默认不显示。is_show=True,# 尾迹特效的周期。period=4,# 尾迹的宽度。trail_width=3,# 尾迹的长度,范围从 0 到 1,为线条长度的百分比trail_length=0.5,# 尾迹的颜色,默认跟线条颜色相同。trail_color="white",# 尾迹的不透明度,默认跟线条不透明度相同trail_opacity=1,),# 仅在 Line3D,Lines3D 起作用# 飞线的线条样式,参考 `series_options.LineStyleOpts`linestyle_opts=opts.LineStyleOpts(# 是否显示is_show=True,# 线宽width=3,# 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形opacity=0.5,# 线的颜色color="yellow",),))return map3d
绘制个折线图,用来查看延误数
# 左边折线图
def line() -> Line():line = (# 折线图Line(# 初始化配置项init_opts=opts.InitOpts(# theme='dark', # 图表主题 white darkchart_id='view_lines'))# !!!!全局配置项!!!!.set_global_opts(# 标题配置项title_opts=opts.TitleOpts(title="航班延误数", # 主标题),legend_opts=opts.LegendOpts(border_width=0,pos_right='30px'),# 区域缩放配置项# datazoom_opts=opts.DataZoomOpts(# is_show=False, # 是否显示 组件。如果设置为 false,不会显示,但是数据过滤的功能还存在# type_="slider", # 组件类型,可选 "slider", "inside"# orient="horizontal" # 可选值为:'horizontal', 'vertical'# ))# X轴配置.add_xaxis(Faker.week)# Y轴配置.add_yaxis("FA293", Faker.values()).add_yaxis("Y6T28", Faker.values())# 颜色配置.set_colors(['red', 'lightblue']))return line
绘制个条形图,用来查看和排行航班各舱位人数和总人数
# 左边条形图
def bar() -> Bar():x_data = ['航班1', '航班2', '航班3', '航班4', '航班5', '航班6', '航班7']bar = (# 条形图Bar(# 初始化配置项init_opts=opts.InitOpts(# theme='dark', # 图表主题 white darkchart_id='view_bar'))# !!!!全局配置项!!!!.set_global_opts(# 标题配置项title_opts=opts.TitleOpts(title="各航班人数", # 主标题),legend_opts=opts.LegendOpts(border_width=0,pos_right='30px'),# # 区域缩放配置项# datazoom_opts=opts.DataZoomOpts(# is_show=True, # 是否显示 组件。如果设置为 false,不会显示,但是数据过滤的功能还存在# type_="slider", # 组件类型,可选 "slider", "inside"# orient="horizontal" # 可选值为:'horizontal', 'vertical'# ))# X轴配置.add_xaxis(xaxis_data=x_data)# Y轴配置.add_yaxis("经济舱", Faker.values(), stack='all', is_realtime_sort=True).add_yaxis("商务舱", Faker.values(), stack='all').add_yaxis("头等舱", Faker.values(), stack='all')# 颜色配置.set_colors(['lightblue', 'lightgreen', 'yellow']).set_series_opts(label_opts=opts.LabelOpts(is_show=False),))return bar
绘制个饼图,用来查看今日各舱位人数和占比
# 右边饼图
def pie() -> Pie():x_data = ['头等舱', '商务舱', '经济舱']y_data = [7652, 10293, 20376]pie = (# 饼图Pie(# 初始化配置项init_opts=opts.InitOpts(# theme='dark', # 图表主题 white darkchart_id='view_pie'))# !!!!全局配置项!!!!.set_global_opts(# 标题配置项title_opts=opts.TitleOpts(title="今日舱位人数占比", # 主标题),legend_opts=opts.LegendOpts(border_width=0,pos_left='right'))# 数据配置.add(# 系列名称,用于 tooltip 的显示,legend 的图例筛选。series_name="所有航班",# 系列数据项,格式为 [(key1, value1), (key2, value2)]data_pair=[list(z) for z in zip(x_data, y_data)],radius=['35%', '60%'],# center=['50%', '50%'],# rosetype="radius")# 颜色配置# .set_colors(Faker.visual_color))return pie
绘制个雷达图,用来实时查看天气预报
# 右边雷达图
def radar() -> Radar():radar = (# 雷达图Radar(# 初始化配置项init_opts=opts.InitOpts(# theme='dark', # 图表主题 white darkchart_id='view_radar'))# !!!!全局配置项!!!!.set_global_opts(# 标题配置项title_opts=opts.TitleOpts(title="实时天气预报", # 主标题),legend_opts=opts.LegendOpts(pos_left='right',border_width=0,# orient='vertical'))# 指示器配置.add_schema(shape='circle',center=['50%', '55%'],radius='70%',schema=[opts.RadarIndicatorItem(name="云量"),opts.RadarIndicatorItem(name="气温"),opts.RadarIndicatorItem(name="气压"),opts.RadarIndicatorItem(name="辐射"),opts.RadarIndicatorItem(name="湿度"),opts.RadarIndicatorItem(name="风速"),opts.RadarIndicatorItem(name="能见度")])# 数据配置.add(# 系列名称,用于 tooltip 的显示,legend 的图例筛选series_name='现在',# 系列数据项data=[Faker.values(0, 100)],# 系列颜色color="yellow",areastyle_opts=opts.AreaStyleOpts(color='yellow',opacity=0.4)).add(series_name='一个小时后',data=[Faker.values(1, 100)],color="aqua",areastyle_opts=opts.AreaStyleOpts(color='aqua',opacity=0.3)).add(series_name='两个小时后',data=[Faker.values(1, 100)],color="chartreuse",areastyle_opts=opts.AreaStyleOpts(color='chartreuse',opacity=0.3)).set_series_opts(label_opts=opts.LabelOpts(is_show=False)))return radar
设置页面布局,输出HTML文件
# 合并页面
def page() -> Page():page = (Page(# 页面标题page_title='某机场可视化大屏',# 布局配置项layout=Page.DraggablePageLayout).add(title(), map3d(), bar(), line(), pie(), radar()))page.render(path='visual.html')
然后拖拽组件,设置好布局,点击Save Config下载好json文件,我的json文件如下:
[{"cid":"view_title","width":"100vw","height":"44px","top":"0","left":"0"},{"cid":"view_map3d","width":"100vw","height":"696px","top":"45px","left":"0"},{"cid":"view_lines","width":"400px","height":"336px","top":"45px","left":"0"},{"cid":"view_bar","width":"400px","height":"362px","top":"379px","left":"0"},{"cid":"view_pie","width":"400px","height":"350px","top":"45px","left":"1136px"},{"cid":"view_radar","width":"400px","height":"352px","top":"389px","left":"1136px"}
]
把json文件放在同级目录下,重命名为visual.json
最后再加上以下代码,
# 用于 DraggablePageLayout 布局重新渲染图表page.save_resize_html(# Page 第一次渲染后的 html 文件source="visual.html",# 布局配置文件cfg_file="visual.json",# 重新生成的 .html 存放路径dest="visual_new.html")return pageif __name__ == '__main__':page()
效果就完成啦
图片发不出来,最终效果如下:
https://s1.ax1x.com/2023/01/22/pSJA9o9.png
pyecharts 可视化大屏制作相关推荐
- echarts嵌套饼图自动动画_使用百度echarts制作可视化大屏——制作一个双层饼图...
使用百度echarts制作可视化大屏--制作一个双层饼图 发布时间:2018-06-12 16:24, 浏览次数:745 , 标签: echarts 实现一个两层嵌套的环形图,展示三个分类下各个品牌车 ...
- 【Dash搭建可视化网站】项目13:销售数据可视化大屏制作步骤详解
销售数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解
疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...
- 熬了半宿做的表格PPT还是不能让老板客户满意?快来看看这些可视化大屏制作软件吧
在这个谁掌握的数据多谁就是强者的时代,如何快速理解数据想要表达的信息是我们提升生活质量和提高工作效率的一大杀手锏.以往我们使用的最多的数据展示软件多是Excel或PPT,但Excel只能整理数据,PP ...
- 从零开发可视化大屏制作平台
几个月前开源的H5页面制作平台H5-Dooring 收到了很多热心的反馈和交流, 顺着笔者之前的规划, 我们又做了一款可视化大屏编辑器V6.Dooring. 接下来笔者就来带大家一起看看我们的方案设计 ...
- pyecharts显示所有x轴_基于Pyecharts可视化大屏案例一(1)
前 言 Pyecharts是一个用于生成Echarts图表的类库,可以通过python import方法加载使用,没有安装的需要pip install pyecharts安装一下:Pyecharts ...
- Pyecharts“可视化大屏“,带你重温 “2020东京奥运会“,不看直播尽知其事!
本文禁止其他人转载,违者必究! 目录 1.项目背景 2.奥运会相关信息爬取 ① 导入相关库 ② 爬虫代码完整讲解 3.数据预处理 ① 数据替换 ② 数据分组 ...
- 最适合新手入门的数据可视化大屏制作软件,现在支持免费使用
如果你是刚刚接触数据可视化的新手,那么这款数据可视化大屏软件绝对适合你,这款软件不仅可以免费使用,而且提供了海量的大屏模板,操作也非常简单方便. 接下来让我们一起看看这款软件的特色之处. 海量大屏模板 ...
- 简单三步 一看就会的数据可视化大屏制作过程
今天为大家带来销售行业销售数据可视化的模板制作教程,对销售行业来说数据的展示是相当重要的,不仅因为销售数据展示的及时对销售行业能带来多少好处,同时也是为了减轻销售工作人员的压力,不用每次做数据统计时焦 ...
最新文章
- 主题博客成功的10个理由
- python configparse_python中ConfigParse模块的用法
- 拉勾启源老师mysql讲义,【拉勾教育数据分析实战训练营】--Tableau学习笔记-重点回顾1...
- C语言判断点是否在矩阵内
- java web结束线程_java – 即使在Websphere中停止应用程序后,线程仍会继续运行
- 史上最强春节档来袭!Python 解读哪部影片值得一看?
- Decorator 装饰模式
- 用animation制作走马灯
- Playing with OS(操作系统)
- python解密m3u8播放_Python3 通过m3u8连接获取完整媒体文件(附全网视频VIP观看方法)...
- R-基础测试(2)——在线帮助(转)
- Legacy(传统)BIOS的历史和不足
- 百度硬盘邀请码在放送
- qscrollbar 固定滑块大小_模仁、镶件、斜顶、滑块等模具零件的加工工艺分析
- 黑客6种方法入侵你的计算机系统
- 数据库完整性实验报告
- python----根据共振峰频率绘制二阶谐振曲线
- Dataframe print 省略号问题
- 爱陆通研习社,水利RTU、环保数采仪、遥测终端机定义,4G5G课堂
- 分析和解决:ERR Error compiling script (new function): user_script:1: 'end' expected near '