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

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

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

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

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

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

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

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

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监控、目标达成率分析、质量控制等场景,帮助决策者快速识别异常值和达标情况。

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:基本条形图 - 简洁数据对比

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

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

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:带数据缩放的条形图 - 大数据集探索

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

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

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

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

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

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

http://www.dtcms.com/a/320594.html

相关文章:

  • 【Centos】Redis 单机部署图文步骤
  • Vue3 基本语法
  • 《从零构建大语言模型》学习笔记2,文本数据处理1(以及tiktoken库无法下载gpt2参数,调用get_encoding时SSL超时的解决方法)
  • 【lucene】PostingsEnum.freq()
  • CVRF 是什么?微软弃用 MS 编号后,网络安全的下一个标准
  • C/C++与JavaScript的WebAssembly协作开发指南
  • 电脑定时开关机终极指南
  • 2025小程序怎么快速接入美团核销,实现自动化核销
  • PeiQi网络安全知识文库PeiQi-WIKI-Book保姆式搭建部署教程
  • sqli-labs通关笔记-第38关 GET字符型堆叠注入(单引号闭合 手工注入+脚本注入两种方法)
  • 欧拉角、四元数与旋转矩阵的C语言转换实现
  • 《论文阅读》传统CoT方法和提出的CoT Prompting的区分
  • 手搓MCP全流程指南:从本地开发部署到PyPI公开发布
  • 自由学习记录(79)
  • 深入解析 Seaborn:数据可视化的优雅利器
  • 智慧社区(九)——事务加持下的小区删除操作
  • Azure OpenAI gpt5和AWS Secrets Manager构建智能对话系统
  • 智能云探索:基于Amazon Bedrock与MCP Server的AWS资源AI运维实践
  • AWS 云小白学习指南 (一)
  • 跟着尚硅谷学vue-day7
  • 【华为机试】55. 跳跃游戏
  • LeetCode有效三角形的个数
  • 借助Rclone快速从阿里云OSS迁移到AWS S3
  • 基于UDP的代理协议的Tuic怎么样?
  • 破解 Django N+1 查询困境:使用 select_related 与 prefetch_related 实践指南
  • 五十六、【Linux系统nginx服务】nginx虚拟主机实现
  • [linux] Linux:一条指令更新DDNS
  • GPT-OSS重磅开源:当OpenAI重拾“开放”初心
  • 面试题:bable,plugin,loader,还有在打包过程中.vue/.react文件是如何转化为.js文件的
  • linux mysql 8.X主从复制