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

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

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

相关推荐

招标公告-网络销售农资治理数据服务项目磋商公告

招标公告-网络销售农资治理数据服务项目磋商公告...

销售的几种方式(销售的十大方式)

以下是几种常见的销售方式介绍:传统线下销售-门店销售:在实体店铺中,销售人员与顾客面对面交流,介绍产品或服务,帮助顾客挑选合适的商品,促成交易。例如在商场的服装专卖店,销售人员会根据顾客的身材、喜...

AI要干掉SaaS销售?(ai销售是什么意思)

随着AI技术的飞速发展,许多行业都在经历前所未有的变革,SaaS销售领域也不例外。最近,行业内关于“AI是否会取代SaaS销售人员”的讨论愈演愈烈,许多从业者感到焦虑不安。然而,SaaS行业老兵大D认...

网络上的性暗示广告泛滥,是商业营销手段还是道德底线的滑落?

刷到是缘分,感谢大家的阅读,希望您能动动小手帮忙点赞,关注,评论。你的支持和鼓励是我前进的动力。在此祝福大家天天快乐,日日开心!...

互联网上,怎么销售 销售是你必须掌握的创造财富的核心技能。

互联网上销售2个要点。销售是你必须要掌握的创造财富的核心技能,只有先促成交易才能获得利润。今天的内容非常重要,但是对于很多人来说并不容易理解,因为它和传统的教育理念有很多的冲突。我尽量慢一点,各位好好...

浅谈网站优化之站内优化(网站的站内优化)

网站优化分为站内优化和站外优化,今天我们只谈站内优化。在给网站做站内优化的同时,我们首先要做一个网站诊断,通过网站诊断,发现网站存在什么问题,然后进行优化。之所以需要优化,是发现网站没有排名,没有流...

想成为一个Web前端开发工程师,需要掌握的知识总结

前端工程师已经成为目前互联网企业极具竞争力的人才,企业不断提升薪资水平为了招聘到优秀的Web前端开发工程师。因此,越来越多的人想要学习Web前端。那么呢?Web前端的学习路线是什么?下面就和千锋武汉W...

合理站内优化-放你200米先跑(200米队伍能站多少人)

有一首民谣是这样说的:丢失了一个钉子,坏了一只蹄铁;坏了一只蹄铁,折了一匹战马;折了一匹战马,伤了一位国王;伤了一位国王,输了一场战斗;输了一场战斗,亡了一个帝国。从这首民谣中我们可以提炼出,一个微小...

教你分析竞争对手的网站,借鉴快速做好自己网站的SEO

关于seo爱好者来说,剖析竞争对手的网站是我们必需要做而且必需要做好的事情。但是很多SEO爱好者只晓得去察看,却不晓得应该如何剖析竞争对手的网站。...

SEO优化重点在哪里?核心因素(seo的优化基础)

seo优化是一个长久的过程,也是一个持续坚持的过程。当然,了解了其中重点的核心因素,会让很多朋友少走很多弯路,所以,今天牵线的木偶想给大家分享下关于SEO比较核心的有些需要重点注意!(完全不了解SE...

站内SEO优化需要重视这16点才能提升网站排名!

1.H标签网站单个页面的H标签尽量控制在一定数量,常见的用法是h1标签1次,h2标签2次,h3标签用3词,也有很大部分的网站不用h1标签直接使用h2标签,这种情况常见于门户站、新闻站等。2.Alt描述...

广州网络包年推广 网络广告包年-易找网络服务中小企业

易找网络专注搜索平台关键词优化排名,信息流广告,朋友圈广告,网站建设等,专注于互联网广告业务,致力于帮各类行业广告主提供PC、移动的互联网效果资源,与国内主流媒体建立了深度战略合作。易找是在搜索引擎上...

网站建设公司背景与技术实力全面解析

今天我要给大家详细讲解一下网站建设公司的情况,这个行业里学问挺多。这些公司能够按照客户的具体要求和需求,制作出功能丰富、外观漂亮的网站,这在互联网领域非常重要。接下来,我们就从几个角度来详细探讨一番。...

全有家居朋友圈线上活动策划方案(附下载)

部分内容预览...

2025商业广场春季营销活动策划方案“春日放飞季”(附下载)

部分内容预览...

取消回复欢迎 发表评论: