当前位置: 首页 > article >正文

Pyecharts之词云图、面积图与堆叠面积图

在数据可视化的精彩世界里,我们可以运用各种各样的图表来展现数据的魅力,帮助我们更好地理解和分析数据。Pyecharts 作为一款功能强大的数据可视化工具,为我们提供了丰富的图表类型,今天我们将深入探讨词云图、面积图和堆叠面积图,看看它们如何为我们的数据可视化工作带来更多的便利和价值。

一、词云图:数据中的关键词可视化

词云图是一种能够直观展现文本数据的可视化工具,它将文本中不同词语的重要性通过字体大小来体现,使我们可以快速捕捉数据中的关键信息。以下是使用 Pyecharts 绘制词云图的详细代码:

from pyecharts import options as opts
from pyecharts.charts import WordCloud
from pyecharts.globals import SymbolType


def wordcloud_chart():
    # 准备词云图所需的数据,每个元组包含一个词语和它的权重
    words = [("数据分析", 80), ("数据挖掘", 70), ("机器学习", 90), ("深度学习", 85), ("人工智能", 100), 
             ("Python", 95), ("可视化", 75), ("编程", 60), ("算法", 88), ("统计", 72), 
             ("大数据", 92), ("数据库", 68), ("SQL", 55), ("NLP", 78), ("预测", 83)]
    wordcloud = WordCloud()
    # 添加词语和权重,并设置词的大小范围和形状
    wordcloud.add(
        series_name="", 
        data_pair=words, 
        word_size_range=[20, 100], 
        shape=SymbolType.DIAMOND
    )
    # 设置全局选项,包括图表标题
    wordcloud.set_global_opts(
        title_opts=opts.TitleOpts(title="词云图:数据关键词可视化")
    )
    return wordcloud


chart = wordcloud_chart()
chart.render_notebook()

代码解释

  • 首先,我们导入了 options 模块、WordCloud 类以及 SymbolType 来指定词云图的形状。
  • 接着,我们创建了 words 列表,其中包含了一系列的词语及其对应的权重,权重反映了词语在数据中的重要性。
  • 然后,创建 WordCloud 实例 wordcloud,使用 add 方法添加数据,data_pair 参数接收我们准备好的词语和权重列表。
  • word_size_range 参数设定了词云图中词语的大小范围,从 20 到 100,确保词语的大小有合理的变化,更清晰地展示不同词语的重要性差异。
  • shape 参数将词云图的形状设置为钻石形,让词云图更具吸引力。
  • 最后,通过 set_global_opts 方法添加了标题,方便用户理解该词云图的主题。

当你将上述代码放入 Jupyter Notebook 中运行时,会看到一个非常直观的词云图。词云图可以让我们在众多文本数据中迅速聚焦于重要信息,适用于各种文本分析场景,如文章的关键词分析、用户评论的主题挖掘等,将复杂的文本信息转化为一目了然的可视化信息。

二、面积图:展现数据的累积趋势

面积图是一种强大的数据可视化工具,它通过填充折线与坐标轴之间的区域,为我们展示数据的变化趋势和累积效果。下面是一个使用 Pyecharts 绘制面积图的示例代码:

from pyecharts import options as opts
from pyecharts.charts import Line


def area_chart():
    # 定义 x 轴和 y 轴的数据
    x_data = ['一月', '二月', '三月', '四月', '五月', '六月']
    y_data = [150, 200, 180, 220, 250, 230]
    line = Line()
    # 添加 x 轴数据
    line.add_xaxis(x_data)
    # 添加 y 轴数据,并将其设置为面积图,设置面积图的透明度
    line.add_yaxis(
        series_name="销售额", 
        y_axis=y_data, 
        areastyle_opts=opts.AreaStyleOpts(opacity=0.5)
    )
    # 设置全局选项,包括图表标题
    line.set_global_opts(
        title_opts=opts.TitleOpts(title="面积图:上半年销售额趋势")
    )
    return line


chart = area_chart()
chart.render_notebook()

代码解释

  • 我们导入了 options 模块和 Line 类,因为在 Pyecharts 中,面积图是通过 Line 类添加面积样式来实现的。
  • 定义 x_datay_data 分别作为月份和对应的销售额数据。
  • 创建 Line 实例 line,使用 add_xaxis 方法添加 x 轴数据。
  • 在添加 y 轴数据时,使用 areastyle_optsy_data 设置面积图样式,将透明度设置为 0.5,让填充区域看起来更加美观,也能更好地观察数据的变化趋势。
  • 使用 set_global_opts 方法添加标题,让用户明确该图表是展示上半年的销售额趋势。

运行这段代码,你将看到一个直观的面积图,它可以清晰地展现销售额在上半年的变化趋势和累积情况,对于分析数据随时间的连续变化趋势,如网站流量的月度变化、产品的月销量趋势等,具有很好的可视化效果。

三、堆叠面积图:揭示数据的分层关系

堆叠面积图在面积图的基础上,允许我们展示多个数据系列的累积和分层关系,帮助我们更深入地理解数据的构成和占比。以下是使用 Pyecharts 绘制堆叠面积图的代码:

from pyecharts.charts import *
from pyecharts import options as opts
from pyecharts.faker import Faker


def line_stack_area():
    line = Line(init_opts=opts.InitOpts(theme='light',
                                        width='1000px',
                                        height='600px'))
    line.add_xaxis(Faker.choose())
    line.add_yaxis('A',
                   Faker.values(),
                   stack='stack')
    line.add_yaxis('B',
                   Faker.values(),
                   stack='stack')
    line.add_yaxis('C',
                   Faker.values(),
                   stack='stack')
    # 设置面积图的透明度
    line.set_series_opts(areastyle_opts=opts.AreaStyleOpts(opacity=0.5))
    return line


chart = line_stack_area()
chart.render_notebook()

代码解释

  • 首先,导入所需的模块和类,包括 Line 类、options 模块和 Faker 类。
  • 创建 Line 实例 line,并使用 init_opts 设置图表的主题为 light,以及宽度和高度。
  • 使用 Faker.choose()x 轴生成一些随机的类别数据。
  • 分别添加三个 y 轴数据系列 ABC,并通过 stack='stack' 参数将它们设置为堆叠的形式。
  • 使用 set_series_opts 方法设置面积图的样式,将 areastyle_optsopacity 设置为 0.5,让填充区域更具层次感。

当你运行这段代码时,会看到一个堆叠面积图,它可以清晰地展示不同数据系列之间的堆叠关系,帮助我们观察不同类别在总体中的占比以及整体的变化趋势。堆叠面积图在展示多个数据系列的累计和占比情况时非常有用,比如不同产品在不同时间的销售占比、不同部门的资源使用情况等。

四、总结

通过这三个示例,我们可以看到 Pyecharts 在数据可视化方面的强大功能,无论是词云图对文本数据的精彩展示,还是面积图和堆叠面积图对数据趋势和分层关系的呈现,都为我们提供了多样化的数据展示手段。


http://www.kler.cn/a/519636.html

相关文章:

  • 计算机毕设【开题报告】怎么写?
  • R语言学习笔记之高效数据操作
  • 设计模式的艺术-代理模式
  • Doris Schema Change 常见问题分析
  • 数据结构(四) B树/跳表
  • 安宝特方案 | AR在供应链管理中的应用:提升效率与透明度
  • 一文讲解Java中的重载、重写及里氏替换原则
  • uniapp商城项目之商品详情
  • 在 Windows 系统上,将 Ubuntu 从 C 盘 迁移到 D 盘
  • 家政预约小程序10首先显示服务内容
  • 有关ORM
  • golang命令大全1--概述
  • Maven面试试题及其答案解析
  • 基础项目实战——学生管理系统(c++)
  • 【Elasticsearch】Springboot编写Elasticsearch的RestAPI
  • Vue 响应式渲染 - 模板语法
  • BroadCom-RDMA博通网卡如何进行驱动安装和设置使得对应网口具有RDMA功能以适配RDMA相机
  • 如何实现一个简单的中文错别字高亮系统?
  • 使用python-docx包进行多文件word文字、字符批量替换
  • 【数据分享】1929-2024年全球站点的逐日降水量数据(Shp\Excel格式)
  • springboot使用tomcat浅析
  • 【全栈】SprintBoot+vue3迷你商城(7)
  • 从入门到精通:HttpClient深度剖析与实战指南
  • SpringBoot--基本使用(配置、整合SpringMVC、Druid、Mybatis、基础特性)
  • Maven的继承与聚合特性:大型项目管理的利器
  • 【Linux笔记】Day5