百度360必应搜狗淘宝本站头条
当前位置:网站首页 > SEO教程 > 正文

全文3000字,Pyecharts制作可视化大屏全流程

gaoyangw 2025-02-26 12:05 16 浏览 0 评论

作者:俊欣

来源:关于数据分析与可视化

今天我们就来说说如何用Pyecharts模块来制作炫酷的可视化大屏,最后的效果如下

步骤如下:

  • 分别使用Pyecharts制作各类图表,包括柱状图、地图、饼图等等
  • 使用Pyecharts当中的组合图表功能,将所有图片拼接在一张html文件中进行展示

数据的来源

这次我们使用的数据是虚构的某超市2021年第一季度的订单数据,总共是有1000条,

df.info()

output


RangeIndex: 1000 entries, 0 to 999
Data columns (total 17 columns):
 #   Column  Non-Null Count  Dtype         
---  ------  --------------  -----         
 0   订单编号    1000 non-null   object        
 1   分支      1000 non-null   object        
 2   省份      1000 non-null   object        
 3   顾客类型    1000 non-null   object        
 4   性别      1000 non-null   object        
 5   商品类型    1000 non-null   object        
 6   单价      1000 non-null   float64       
 7   数量      1000 non-null   int64         
 8   Tax 5%  1000 non-null   float64       
 9   总价      1000 non-null   float64       
 10  日期      1000 non-null   datetime64[ns]
 .......  
dtypes: datetime64[ns](1), float64(7), int64(1), object(8)
memory usage: 132.9+ KB

其中顾客的类型有普通顾客与会员,性别有男性与女性,剩下的还有包括商品类型、购买时间、支付方式、各个商品的毛利率等数据,

数据可视化

接下来我们开始各个图表的绘制,我们先来看饼图的绘制,代码并不复杂,首先我们对“商品类型”这一列的数据进行统计

products_type_index = df["商品类型"].value_counts().index.tolist()
products_type_values = df["商品类型"].value_counts().values.tolist()

然后再调用Pyecharts()模块中的Pie()实例进行图表的绘制

def pie_chart_2():
    
    c = (
        Pie(init_opts=opts.InitOpts(chart_id=4, bg_color='#1C1C1C',
                                    theme=ThemeType.INFOGRAPHIC))
        .add("", [list(z) for z in zip(products_type_index,
                                       products_type_values)])
        .set_global_opts(title_opts=opts.TitleOpts(title="商品类型分布图",
                                                   title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#FFFFFF')),
                         legend_opts=opts.LegendOpts(orient="vertical",
                                                     pos_left="5%",
                                                     pos_top="10%"))
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    )

    return c
    
if __name__ == "__main__":
    map = map_chart()
    map.render("4.html")

output

另外,我们也看到了单张图片当中有两张饼图的情况,这是使用了Pyecharts()模块当中的Grid()实例,将若干张绘制完成的图表遵从一定的顺序来进行组合

grid = (
        Grid(init_opts=opts.InitOpts(width='1000px', height='600px',
                                     chart_id=3, bg_color='#1C1C1C'))
        .add(c_1, grid_opts=opts.GridOpts(pos_left="60%"))
        .add(c_2, grid_opts=opts.GridOpts(pos_right="50%"))
    )

地图

同样地,我们将不同省份的数据给筛选出来之后,然后进行图表的绘制

city_index = df["省份"].value_counts().index.tolist()
city_values = df["省份"].value_counts().values.tolist()

地图的绘制用的是Pyecharts模块当中的Map()实例,可以看到顾客几乎都分布在北京、浙江以及上海这几个地方

def map_chart():
    c = (
        Map(init_opts=opts.InitOpts(chart_id=2,
                                    bg_color='#1C1C1C'))
            .add("商家A", [list(z) for z in zip(city_index,
                                              city_values)], "china")
            .set_global_opts(
            title_opts=opts.TitleOpts(title="顾客在全国的分布图",
                                      title_textstyle_opts=opts.TextStyleOpts(font_size=25,
                                                                              color='#FFFFFF')),
            visualmap_opts=opts.VisualMapOpts(max_=250),
        )
    )
    return c
    
if __name__ == "__main__":
    map = map_chart()
    map.render("2.html")

output

直方图

我们针对的是购买时间,看一下哪些购买时间段的人会比较多

hour_index = df["小时"].value_counts().index.tolist()
hour_index_str = [str(hour_ind) + "时" for hour_ind in hour_index]
hour_values = df["小时"].value_counts().values.tolist()

调用Bar()实例进行绘制图表

def bar_chart():
    c = (
        Bar(init_opts=opts.InitOpts(chart_id=5, bg_color='#1C1C1C',
                                    theme=ThemeType.CHALK))
            .add_xaxis(hour_index_str)
            .add_yaxis("商家A", hour_values)
            .set_global_opts(title_opts=opts.TitleOpts(title="购物的时间分布",
                                                       subtitle="购物时间",
                                                       title_textstyle_opts=opts.TextStyleOpts(font_size=25, color='#FFFFFF')))
    )
    return c
    
if __name__ == "__main__":
    map = map_chart()
    map.render("5.html")

output

Pyecharts组合图表

将绘制出来的若干份图表组合到一块儿,总共有这几种方式

  • Grid: 并行/垂直放置多张图
  • Page: 顺序多图
  • Tab: 多个页面多图
  • Timeline: 时间轴循环轮播多图

我们使用的是Page()示例来顺序展示多张图表,先实例化该对象

page = Page(layout=Page.DraggablePageLayout, page_title="基于Pyecharts的销售数据大屏")

之所以用DraggablePageLayout属性是为了调整成我们所想要的布局,然后将我们所绘制的图表一一添加

page.add(
    title(),
    map_chart(),
    pie_chart(),
    pie_chart_2(),
    bar_chart(),
)

page.render('test_2.html')

最后生成一个test_2.html的文件,然后我们将布局调整成我们想要的结果

对图片布局完成之后,要记得点击左上角的save config按钮对布局文件进行保存。之后本地会生成一个chart_config.json文件,然后运行下面的代码

page.save_resize_html('test_2.html', cfg_file='chart_config.json', dest='可视化大屏.html')

打开重新生成的可视化大屏.html,便是新的内容

相关推荐

工业品短视频推广/工业品短视频推广,搞懂2点让客户主动找上门

工业品短视频推广/工业品短视频推广,搞懂2点让客户主动找上门。为什么你拍了那么多短视频都没有效果,我们陪跑了几百家客户,发现没效果的账号基本就这3种情况,一种是把短视频当成朋友圈,晒日常生活,账号标签...

流程优化,其实是一场管理变革(流程优化的三个原则)

“信息化”一词,相信大家都不会感到陌生,但什么是信息化?企业信息化要做些什么?对此的理解真是仁者见仁智者见智。...

引爆中小卖家免费流量入口关键词梯形架构

“在我从代运营做天猫转到自己去经营自己的C店的时候,我终于知道,原来这个世界上做淘宝的,并非每一个人多那么有钱可以去砸直通车,也不是每一个人多可以请得起薪酬十来万的设计的,近两年我一直在摸索一种适合小...

百度搜索2015移动大事记:优化、流量追查等

站长之家(Chinaz.com)注:纵观2015这一年,百度搜索的关键词不外乎“移动”二字。为了响应移动互联网的大势,百度不遗余力的在移动搜索上下足了功夫。从搜索引擎算法、到站长平台工具都做出了许多改...

百度站搜带你玩转站内流量(百度站长app)

先给大家看几张效果图:图1图2图3这3种激发用户搜索需求的牛B武器你的站点“武装”了么?使用效果如何?现在让我们来看看一下网站使用后的心得以及效果:比特网:由于比特之前有自己的站内搜索工具,所以百度刚...

继PC端后 百度移动搜索也将取消refer关键词显示

站长之家(Chinaz.com)12月4日消息今年6月25日,百度搜索正式取消了referer中关于关键词的显示。近日,百度站长平台在公告中表示“百度移动搜索中也将逐步取消referer关键词的显示”...

知己知彼,百战不殆--六个方法帮你分析对手网站

好的推广专员对竞争对手的网站进行分析是必不可少的,根据竞争对手每个阶段及时做好SEO的调整。做好知彼知己才能对后期的优化有所帮助。下面小编就分享分析竞争对手网站的六大SEO方法。1、网站年龄网站时间...

百度站点属性功能升级 全面取消referer关键词显示

站长之家(Chinaz.com)6月30日消息近日,百度站长平台发布公告称已对“站点属性”功能进行升级,此功能已作为独立工具展示于工具导航栏中。站长可通过“站点属性”功能对站点中文名、站点类型、以及站...

大连关键词优化推广公司(大连seo推广优化)

关键词挖掘与关键词分析提高网站权重的方法最重要的一步就是挖掘有质量的关键词。然后根据关键词的情况进行标题创作和内容的创作。关键词分析分类:1.有指数的关键词2.没有指数的关键词关键词挖掘分类:品牌关...

如何实现AI文章免费优化,轻松提升网站排名?

你是否觉得,尽管文章内容已经写得很棒,网站的流量却始终无法突破瓶颈?是不是常常觉得自己做了很多优化工作,却依旧难以提高文章的搜索排名?其实,很多人忽略了一个关键问题,那就是“如何优化AI文章”。尤其是...

AI搜索SEO优化排名公司推荐(seo搜索引擎优化排名)

AI搜索SEO优化排名公司推荐,随着AI的平民化,越来越多的人开始通过AI寻找自己的需求,例如通过问AI助手,广州哪家火锅好吃?深圳家政服务哪家公司好?北京全屋定制哪家靠谱?如果这时候AI推荐了你的...

构建可以查找相似图像的图像搜索引擎的深度学习技术详解

在本文中将介绍如何查找相似图像的理论基础并且使用一个用于查找商标的系统为例介绍相关的技术实现,本文提供有关在图像检索任务中使用的推荐方法的背景信息。阅读本文后你将有能够从头开始创建类似图像的搜索引擎...

搜索引擎语法,教你高格逼利用搜索引擎!

百度语法1.site把搜索范围规定在特定的站点中。但是有时候你需要找一些特殊的文档,特别是针对于专业性比较强的网站合理使用site可以让你取得事半功倍的效果。举例说明:site:sina.com(不...

Off-eBay搜索引擎下,listing和店铺 SEO技巧

雨果网从外媒近日报道中了解到,eBay正在举行一系列促进销售增长的专家网络研讨会(ExpertAdviceGrowthWebinars),第一场在3月3日举行。外媒为未参加网络研讨会的卖家,挑出...

搜索引擎原理系列教程:收录、索引、排名

《搜索引擎原理系列教程》这个虽然称不上书籍,但由于里面信息量以及内容比较实用,也弥补了百度白皮书的一些短板——话语浮于表面,另外值得鼓励的是,这个教程完全是由一个民间的SEO爱好者总结,这份精神值得称...

取消回复欢迎 发表评论: