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

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

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

相关推荐

跨境卖家必看:营销与产品,到底谁才是你的“摇钱树”?

在跨境电商的江湖里,永远流传着两个极端传说:有人靠“一张神图”日销万单,也有人因“产品垃圾”被骂到关店。营销与产品,究竟谁才是跨境卖家的命根子?今天,我们不灌鸡汤,只讲能让你“活下去”的生存法则。...

旺自己的三种方法,一定要牢记

三种旺己之道,开启丰盈人生生活的转机往往藏在自我经营的智慧里。想要旺自己,不妨从这三个方向深耕,让生命绽放独特光彩。专注自我成长,夯实内在根基。...

让顾客感觉占便宜的20种营销策略之赠品策略(三)

赠品策略:巧妙馈赠,让顾客感知超值顾客不喜欢便宜,喜欢的是占便宜的感觉!如何让顾客感觉自己占到了便宜?赠品策略是一种能有效拉近与顾客距离,使其切实感受实惠与惊喜的营销方式。以下为您详细解读常见的赠品...

成都网上注册公司流程

成都注册公司:【四川龙眼企服】成都网上注册公司流程:先得给公司取个响亮又合规的名字,登录当地工商行政管理部门网站,在企业名称预先核准系统查。名字通过后,就得准备注册材料啦,像公司章程、股东身份证明、注...

企业定制网站的优势有哪些?

企业定制网站具有多方面的显著优势,能够精准契合企业需求,助力企业在网络世界中脱颖而出。以下是其主要优势的详细介绍:精准匹配业务需求定制网站能够依据企业的具体业务模式、行业特点以及目标受众,量身定制功能...

学术交流新窗口:微网站搭建赋能会议组织全流程升级

在当今信息化快速发展的时代,学术会议的组织与管理也逐渐向数字化转型。微网站作为学术会议前期准备的重要组成部分,不仅是会议宣传推广的窗口,更是注册报名、征文管理等多项功能的集成平台。本文将对学术会议微网...

网站域名备案流程?分享一下自己的经历

这里以腾讯云为例。想要开发一个网站,网站备案这个流程是必不可少的。首先你要买一个域名,还要买一个服务器,这样就可以备案了。备案分为企业备案和个人备案,企业备案我不清楚,但是个人备案相对比较简单。个人备...

不容错过的网站建设公司总览!

在当今数字化浪潮席卷全球的时代,网络世界的发展可谓日新月异。截至2025年,全球网站总量已然突破20亿个大关,在这个信息爆炸的网络时代,企业官网的重要性愈发凸显。数据显示,高达75%的用户会通过企业官...

从零搭建网站?5个步骤详解网站建设全流程

在数字化时代,拥有一个专业网站已成为企业或个人品牌展示的核心竞争力。但对于新手而言,网站建设往往显得复杂难懂。本文梳理出5大关键步骤,手把手带你完成从策划到上线的全流程,省时省力不踩坑!一、前期准备:...

如何给自己的公司建网站?会打字就能自己做网站

零基础快速使用观达云建站平台为公司建网站,可参考以下步骤:注册与登录访问观达云建站平台官网,点击注册按钮,填写相关信息完成账号注册,然后登录账号。...

电商网的SEO优化策略方法

1、内容质量:网站的内容质量在SEO优化中的分量是最大的,只有有了好的内容才能吸引客户,只有有了独特的内容才能让网页的排名超过泛泛而谈的网页。2、站内基本优化:站内的基本优化则包含网站的内部链接的最大...

现在的网站SEO就该这么做

笔者第一次正事的写一篇完整的博文,主要自己的写作能力很屌丝,一直没怎么完整的写过一篇文章,虽然有自己的博客,但是很多内容是自己收集和组织别人的内容,还有很多内容是直接转载而来。现在要改变下,之后会把自...

逆冬:讲3个SEO相关小问题!权重+收录+15天定律

又是一个周六,由于最近在忙另外一个项目,文章就耽误了,最近又有徒弟相关问题,还有一些同学催更。针对徒弟们问题,我们再来给大家统一讲解!一、15天定律(如何过)...

企业如何抓住AI搜索优化红利?从SEO到GEO的实战转型指南

你是否发现,最近在搜索问题时,答案直接显示在顶部而不需要点击链接?这背后是AI搜索革命正在改写流量规则。据统计,80%的消费者已在30%的搜索中依赖AI摘要,传统网站点击量下降高达10%。当DeepS...

就得仿这样的~来自dribbble上的简约大气网页设计欣赏

谁说简洁的排版不能出彩!好的页面永远是把最重要的信息传达给用户,简单利落!一组简洁的网站首页设计欣赏。下面收集来自于dribbble上的优秀网页设计作品希望对你带来帮助。...

取消回复欢迎 发表评论: