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

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

gaoyangw 2025-02-26 12:05 8 浏览 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,便是新的内容

相关推荐

微信小程序如何推广获得流量,提升广告变现收益?

微信小程序推广能精准撬动用户增长,抓住用户,培养用户的忠诚度是所有产品的根本。#微信小程序#...

品牌活动策划:提升知名度与销量的关键

文章一开始就清楚指出,品牌活动的策划与传播是一门深奥的学问,对于提升品牌知名度、扩大销量等具有极其重要的意义。一次成功的策划与传播,不仅能吸引消费者的目光,还能在他们的心中留下美好的印象。接下来,我们...

上海商业推广方法解析:社交媒体与线下活动

上海商业气息浓郁,各种营销推广手段接连不断。以下将为大家逐一介绍几种常见的推广方法。社交媒体推广社交媒体对企业推广至关重要。在上海,微信、抖音、小红书等成了商家热捧的平台。有趣且有价值的帖子能吸引众多...

水果店如何通过线上平台拓展销售?多元化提升盈利

水果店借助线上平台拓展销售渠道,打破了地域局限,吸引了更广泛的顾客群体,显著提升了销售量。多样化的线上营销手段提升了品牌知名度,为水果店带来了更多盈利。1、搭建线上展示门面想要通过线上平台拓展水果店的...

揭秘“电诈之王” — 刷单诈骗!(电诈预警刷单类诈骗案例)

发案多!套路多变!...

刷单返利套路深度揭秘,谨防被骗!

“足不出户,日进斗金”“正规平台,诚邀刷单”...

腾讯QQ突然宣布:短视频功能不再支持!

腾讯QQ官方宣布,短视频功能将于2025年4月2日正式下线,用户将无法发布新作品或浏览他人视频。这一调整是QQ运营策略优化的一部分,旨在聚焦核心社交功能,同时整合腾讯内部资源。此次...

广点通广告有哪些投放平台?有哪些功能?

相信大家每天都在频繁的使用微信、QQ,刷朋友圈刷空间等,但是都不太清楚里面的一些广告类型,今天这篇文章,小编就带大家了解一下广点通广告有哪些投放平台?以及广告投放的功能介绍。广点通广告可自定义投放:...

一起来看“刷单诈骗”是怎样一步步套路我们的!

...

谈谈我的初中线上兼职首篇之QQ拉人进群

初中时,我刚刚接触手机聊天软件,添加了形形色色的人,进入了各种各样的群聊,像互赞群(当时特别热衷于QQ上的各类互动,还喜爱刷赞,花几分钱就能刷好几千的赞,为此还专门搭建了副网站,却不知如何运营,最后荒...

一部手机,月入过万不是梦!揭秘当下热门网络经济赚钱法

...

如何为网站加入在线客服系统,监控在线访客,主动开展营销

最近陆续有许多小伙伴询问如何在自己的服务器上部署安装自己的在线客服系统,以达到100%私有化使用的目的。所以我决定把这个过程详细的整理出来,大家按步骤来即可。...

代理 IP 地址和端口实用手册:提升网络效率的秘籍

代理IP地址和端口在网络访问中扮演着重要角色,特别是在需要隐藏真实IP地址、突破地域限制或提高网络访问效率时。以下是一份详细的实用手册,帮助您从选择、配置到优化代理IP地址和端口,以提升网...

网络营销/越客单价高的生意,越要解决信任问题

网络营销/越客单价高的生意,越要解决信任问题回想跟客户的交易过程,我觉得信任是最重要的。不管是阿里运营,还是抖音短视频运营,又或者企业的全案营销,对企业来讲,都是对他企业的一个未来投资,销售渠道的拓展...

【营销策略】(营销策略的概念)

今早要送小孩去写字,吃粉就吃得晚了点,粉店里已没人在排队。我进店就说,一两汤切粉。老板娘从汤锅那边转过身来说,哦,二两嘛?我重复一遍,一两。待打得粉过来,老板娘一手抓肉,一手抓刀,问,要什么...

取消回复欢迎 发表评论: