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 在数据可视化方面的强大功能,无论是词云图对文本数据的精彩展示,还是面积图和堆叠面积图对数据趋势和分层关系的呈现,都为我们提供了多样化的数据展示手段。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抱抱宝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值