每日五个pyecharts可视化图表:条形图与关系图

在数据可视化领域,选择合适的图表类型对于有效传达信息至关重要。pyecharts作为Python中强大的可视化库,提供了丰富的图表类型。本文将聚焦于两种常用图表类型:条形图(Bar)和关系图(Graph),并通过5个实用示例展示如何使用pyecharts创建风格各异的可视化效果。

  • 条形图(Bar):适用于展示不同类别之间的数量对比,是数据可视化中最基础也最常用的图表类型之一
  • 关系图(Graph):用于展示实体之间的关联关系,如社交网络、知识图谱等复杂关系网络

让我们开始学习这5种实用的可视化图表制作方法。
pyecahts源码

图表1:直方图 - 展示数据分布

直方图是条形图的一种特殊形式,主要用于展示数据的分布情况。与普通条形图不同,直方图通过设置category_gap=0参数消除条形间的间隔,形成连续的视觉效果,更直观地反映数据的分布特征。

这种图表特别适合展示频率分布、数据集中趋势和离散程度,常用于统计分析、质量控制等场景。

python 复制代码
from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker 

c = (
    Bar() 
    .add_xaxis(Faker.choose()) 
    .add_yaxis("商家A", Faker.values(), category_gap=0, color=Faker.rand_color()) 
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图")) 
    #.render("bar_histogram.html") 
)
c.render_notebook()

代码解释:

  • 使用Faker.choose()生成x轴数据(随机选择的类别)
  • 使用Faker.values()生成y轴数据(随机数值)
  • category_gap=0设置类别之间的间隔为0,形成直方图效果
  • color=Faker.rand_color()设置随机颜色
  • set_global_opts(title_opts=opts.TitleOpts(title="Bar-直方图"))设置图表标题为"Bar-直方图"

图表2:带自定义标记线的条形图 - 数据阈值监控

在数据分析中,我们经常需要关注数据是否达到某个关键阈值。通过在条形图中添加自定义标记线,可以直观地展示数据与阈值的关系,提升数据解读效率。

这种图表特别适合KPI监控、目标达成率分析、质量控制等场景,帮助决策者快速识别异常值和达标情况。

python 复制代码
from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker 

c = (
    Bar() 
    .add_xaxis(Faker.choose()) 
    .add_yaxis("商家A", Faker.values()) 
    .add_yaxis("商家B", Faker.values()) 
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-MarkLine(自定义)")) 
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False), 
        markline_opts=opts.MarkLineOpts(
            data=[opts.MarkLineItem(y=50, name="yAxis=50")] 
        ), 
    ) 
    #.render("bar_markline_custom.html") 
)
c.render_notebook()

代码解释:

  • 使用Faker.choose()生成x轴数据(随机选择的类别)
  • 添加了两个y轴数据系列:"商家A"和"商家B"
  • label_opts=opts.LabelOpts(is_show=False)设置不显示条形图上的标签
  • markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(y=50, name="yAxis=50")])添加自定义标记线,y轴值为50
  • 标记线可以帮助我们快速识别数据是否达到某个阈值,非常适合用于监控和分析数据

图表3:基本条形图 - 简洁数据对比

基本条形图是数据可视化中最常用的图表类型之一,它通过垂直或水平的条形展示不同类别的数据值,直观地反映各类别之间的数量差异。

本示例展示了如何创建带有标题和副标题的条形图,这种简洁明了的设计适合大多数商务报告、数据分析演示等场景,帮助观众快速理解数据对比关系。

python 复制代码
from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker 


c = (
    Bar() 
    .add_xaxis(Faker.choose()) 
    .add_yaxis("商家A", Faker.values()) 
    .add_yaxis("商家B", Faker.values()) 
    .set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题")) 
    #.render("bar_base.html") 
)
c.render_notebook()

代码解释:

  • 使用Faker.choose()生成x轴数据(随机选择的类别)
  • 添加了两个y轴数据系列:"商家A"和"商家B"
  • set_global_opts(title_opts=opts.TitleOpts(title="Bar-基本示例", subtitle="我是副标题"))设置图表标题为"Bar-基本示例",副标题为"我是副标题"
  • 基本条形图是数据可视化中最常用的图表类型之一,适合展示不同类别之间的数量对比

图表4:带数据缩放的条形图 - 大数据集探索

当处理大量数据时,完整展示所有数据点可能导致图表难以阅读。通过添加数据缩放功能,用户可以灵活地查看数据的整体趋势和局部细节。

本示例同时实现了两种缩放方式:外部滑块缩放和内部拖动缩放,特别适合时间序列分析、销售数据趋势分析等大数据集场景,提升数据探索效率。

python 复制代码
from pyecharts import options as opts 
from pyecharts.charts import Bar 
from pyecharts.faker import Faker 

c = (
    Bar() 
    .add_xaxis(Faker.days_attrs) 
    .add_yaxis("商家A", Faker.days_values, color=Faker.rand_color()) 
    .set_global_opts(
        title_opts=opts.TitleOpts(title="Bar-DataZoom(slider+inside)"), 
        datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")], 
    ) 
    #.render("bar_datazoom_both.html") 
)
c.render_notebook()

代码解释:

  • 使用Faker.days_attrs生成x轴数据(代表天数)
  • 使用Faker.days_values生成y轴数据(代表每天的数值)
  • color=Faker.rand_color()设置随机颜色
  • datazoom_opts=[opts.DataZoomOpts(), opts.DataZoomOpts(type_="inside")]同时添加滑块数据缩放和内部数据缩放功能
  • 滑块缩放允许用户在图表底部拖动滑块来缩放数据范围
  • 内部缩放允许用户直接在图表内部拖动来放大或缩小数据范围

图表5:关系图 - 展示复杂关联网络

关系图(Graph)是一种特殊的可视化图表,用于展示实体(节点)之间的关联关系(边)。通过节点大小、边的连接方式等视觉元素,可以直观地呈现复杂网络的结构特征。

这种图表特别适合社交网络分析、知识图谱展示、供应链关系可视化等场景,帮助我们理解复杂系统的结构和运行机制。

python 复制代码
from pyecharts import options as opts 
from pyecharts.charts import Graph 

nodes = [ 
    {"name": "结点1", "symbolSize": 10}, 
    {"name": "结点2", "symbolSize": 20}, 
    {"name": "结点3", "symbolSize": 30}, 
    {"name": "结点4", "symbolSize": 40}, 
    {"name": "结点5", "symbolSize": 50}, 
    {"name": "结点6", "symbolSize": 40}, 
    {"name": "结点7", "symbolSize": 30}, 
    {"name": "结点8", "symbolSize": 20}, 
] 
links = [] 
for i in nodes: 
    for j in nodes: 
        links.append({"source": i.get("name"), "target": j.get("name")}) 
c = (
    Graph() 
    .add("", nodes, links, repulsion=8000) 
    .set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例")) 
    #.render("graph_base.html") 
)
c.render_notebook()

代码解释:

  • nodes定义了图中的节点,每个节点有名称和大小属性
  • symbolSize设置节点的大小
  • links定义了节点之间的连接关系,这里我们创建了所有节点之间的连接
  • Graph().add("", nodes, links, repulsion=8000)创建关系图,repulsion设置节点之间的排斥力
  • set_global_opts(title_opts=opts.TitleOpts(title="Graph-基本示例"))设置图表标题为"Graph-基本示例"
  • 关系图非常适合展示实体之间的关联,如社交网络、知识图谱等

总结与实践建议

通过本文的学习,我们掌握了pyecharts中5种实用的可视化图表制作方法,涵盖了条形图和关系图的主要应用场景:

  1. 直方图 :通过category_gap=0创建连续效果,适合展示数据分布特征
  2. 带标记线的条形图 :使用markline_opts添加阈值线,提升数据监控效率
  3. 基本条形图:简洁明了的设计,适合大多数数据对比场景
  4. 带数据缩放的条形图:滑块+内部拖动双重缩放,优化大数据集探索体验
  5. 关系图:节点与边的巧妙组合,直观展示复杂网络关系

实践建议

  • 选择合适的图表类型:根据数据特征和展示目的选择最适合的图表类型,条形图适合对比,关系图适合展示关联
  • 优化视觉效果:合理使用颜色、标签、标题等元素,提升图表的可读性和美观度
  • 增强交互体验:利用pyecharts提供的交互功能(如数据缩放、提示框等),提升用户体验
  • 结合实际场景:根据具体业务场景调整图表参数,使可视化效果更贴合实际需求

pyecharts作为Python中功能强大的可视化库,提供了丰富的图表类型和灵活的配置选项。掌握本文介绍的这些技巧,可以帮助您创建更加专业、美观且实用的数据可视化作品,更好地挖掘和传达数据背后的价值。

期待您在实际项目中灵活运用这些技巧,创造出更具洞察力的数据可视化效果!