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

WPF新手村教程(七)—— 终章(MVVM架构初见杀)陶

1. 哑铃图是什么哑铃图Dumbbell Plot有时也称为DNA图或杠铃图是一种用于比较两个相关数据点的可视化图表。它源于人们对更有效数据比较方式的持续探索。在传统的时间序列比较中我们通常使用两条折线但当需要比较的项目较多时折线图会变得混乱。哑铃图通过将比较焦点放在每个项目的两个状态上解决了多项目对比时的视觉混乱问题。它的基本结构很简单每个观察单位如产品、地区、时间段对应两个数据点这两个数据点由一条直线或线段连接整个图形看起来像一排排哑铃因而得名2. 实现原理哑铃图的核心设计理念是最小化认知负荷。当我们需要比较A和B时最直接的方式就是把它们放在一起用一条线连接然后观察这条线的长度差异大小和方向哪个更大。在matplotlib中创建哑铃图我们主要使用以下元素散点图表示两个数据点直线段连接两个相关点颜色编码通常用不同颜色区分前后状态或不同组别标签系统清晰标识每个观察单位3. 实战示例接下来我们看看哑铃图在实际场景中的显示效果。假设我们是一家电商公司的数据分析师需要比较8个主要产品类别在2022年和2023年的销售额变化。完整的代码在文章末尾提供下载地址文中只截取部分代码先创建一些测试数据# 示例数据8个产品类别在2022年和2023年的销售额单位万元categories [电子产品,服装鞋帽,家居用品,美妆护肤,图书音像,运动户外,食品饮料,母婴用品,]sales_2022 [85, 92, 78, 65, 45, 60, 88, 72]sales_2023 [95, 87, 85, 78, 52, 73, 95, 80]然后我们绘制传统的簇状条形图和哑铃图来对比一下效果# 创建子图对比两种可视化方法fig, (ax1, ax2) plt.subplots(1, 2, figsize(14, 8))# 簇状条形图x np.arange(len(categories))bars1 ax1.bar(x - width/2, sales_2022, width, label2022年, color#4C72B0, alpha0.8)bars2 ax1.bar(x width/2, sales_2023, width, label2023年, color#DD8452, alpha0.8)# 在每个条形上添加数值标签# 省略 ...# 哑铃图# 设置y轴位置每个类别的垂直位置y_pos np.arange(len(categories))# 绘制连接线for i, (y2022, y2023) in enumerate(zip(sales_2022, sales_2023)):# 确定线颜色增长为绿色下降为红色line_color #55A868 if y2023 y2022 else #C44E52ax2.plot([y2022, y2023], [i, i], colorline_color, linewidth2.5, alpha0.7, zorder1)# 绘制数据点ax2.scatter(sales_2022, y_pos, s120, color#4C72B0, alpha0.9, label2022年, zorder2, edgecolorswhite, linewidth2)ax2.scatter(sales_2023, y_pos, s120, color#DD8452, alpha0.9, label2023年, zorder2, edgecolorswhite, linewidth2)# 省略 ...plt.tight_layout()plt.show()通过上面的对比我们可以清晰地看到哑铃图的优势变化一目了然连接线的长度直观表示变化幅度方向表示增长或下降减少视觉跳跃眼睛不需要在条形间来回移动而是沿着水平线自然追踪突出比较重点专注于每个项目的两个状态对比而非绝对数值进一步我们还可以给哑铃图排序按照增长由快到慢给各个品类排序这样自然形成从下降最显著到增长最显著的连续谱模式自动显现无需刻意寻找。比如上面的哑铃图中【服装鞋帽】这个品类其实销售额是下降的混在一堆哑铃中不容易看出来吧# 创建排序后的哑铃图fig, ax plt.subplots(figsize(10, 8))# 按变化幅度排序sorted_indices np.argsort([sales_2023[i] - sales_2022[i] for i in range(len(categories))])sorted_categories [categories[i] for i in sorted_indices]sorted_2022 [sales_2022[i] for i in sorted_indices]sorted_2023 [sales_2023[i] for i in sorted_indices]# 绘制连接线# 省略 ...# 绘制数据点# 省略 ...# 添加变化箭头标注# 省略 ...plt.tight_layout()plt.show()这样改造后由上到下的哑铃越来越短也就是增长越来越慢最底部的那个是负增长用了红色来标注。4. 总结数据可视化的核心目标是有效传达信息。当我们需要强调变化、比较两个相关状态时哑铃图提供了一种简洁而强大的解决方案。就像选择合适的工具完成工作一样在面对数据比较任务时我们应该根据具体需求选择最合适的可视化形式当需要比较多个项目的两个状态时选择哑铃图当需要展示单个项目的多个组成部分时选择堆积条形图当需要比较多个项目的多个类别时选择簇状条形图最好的可视化不是最复杂的而是能让观众在最短时间内理解最多信息的那个。哑铃图正是这样一种高效的工具它用最简单的线条连接讲述了数据世界中最动人的变化故事。乜靥步低

相关文章:

WPF新手村教程(七)—— 终章(MVVM架构初见杀)陶

1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...

物联网入门:从会动的小灯泡起步,普通人轻松上手,一篇文章快速入门

物联网开发入门指南:从零开始,手把手带你玩转物联网 一、物联网专业到底学些啥? 物联网专业听起来高大上,其实说白了,就是教你如何把身边的各种“东西”连上网,让它们能“说话”、能“听话”、能“思考”…...

IM010-批量去除图片多余信息-为图片瘦身

批量为图片瘦身,减小图片大小 A文件夹下有P、K、M、H....等文件夹,每个文件夹下都有图片,将程序放在A文件夹下,运行程序后,会自动为每个文件夹下图片进行瘦身减小文件大小。 程序截图 ImageMagick安装方式 先在电脑D盘…...

HagiCode Desktop 混合分发架构解析:如何用 PP 加速大文件下载雷

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...

Resource Override:掌控网站资源的终极浏览器插件

Resource Override:掌控网站资源的终极浏览器插件 【免费下载链接】ResourceOverride An extension to help you gain full control of any website by redirecting traffic, replacing, editing, or inserting new content. 项目地址: https://gitcode.com/gh_mi…...

BongoCat桌宠自定义开发全面解析:从设计到社区贡献的实战指南

BongoCat桌宠自定义开发全面解析:从设计到社区贡献的实战指南 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 开源项目设计理念与架构解…...

国民技术N32G45x定时器:从时钟树到精准周期计算的实践解析

1. 国民技术N32G45x定时器入门指南 第一次接触N32G45x系列MCU的定时器功能时,我也被各种时钟配置搞得晕头转向。后来在实际项目中反复调试才发现,只要掌握几个关键点,定时器的使用其实并不复杂。N32G45x作为国民技术推出的高性能MCU&#xff…...

[AI/Agent/社交] AI Agent社交网络产品:MoltBook => InStreet缴

一、Actor 模型:不是并发技巧,而是领域单元 Actor 模型的本质是: Actor 是独立运行的实体 Actor 之间只通过消息交互 Actor 内部状态不可被外部直接访问 Actor 自行决定如何处理收到的消息 Actor 模型真正解决的是: 如何在不共享状…...

把 Flask 搬进 ESP,高中生自研嵌入式 Web 框架 MicroFlask !唤

如果有多个供应商,你也可以使用 [[CC-Switch]] 来可视化管理这些API key,以及claude code 的skills。 # 多平台安装指令 curl -fsSL https://claude.ai/install.sh | bash ## Claude Code 配置 GLM Coding Plan curl -O "https://cdn.bigmodel.cn/i…...

隐写术工具技术指南:从原理到实践的完整探索

隐写术工具技术指南:从原理到实践的完整探索 【免费下载链接】openstego OpenStego is a steganography application that provides two functionalities: a) Data Hiding: It can hide any data within an image file. b) Watermarking: Watermarking image files …...

Product Hunt 每日热榜 | 2026-04-09

1. Velo 标语:将任何内容分享为视频消息。 介绍:Velo 利用人工智能将你的原始屏幕录制转化为值得一看的、随时可以分享的视频。 产品网站: 立即访问 Product Hunt: View on Product Hunt 关键词:Velo, 视频消息, A…...

AI写文+自动发布实现方法,自媒体矩阵新玩法

不少自媒体运营者在内容产出上常常面临时间紧、任务重的问题。每天要构思选题、撰写文案、排版配图、多平台分发,流程繁琐且重复性高。于是,有人尝试将AI写作与自动发布结合起来,看看是否真能提升效率。我们也在实际操作中验证了这一组合的效…...

【2026开年巨献】精通Python十讲:第十讲 - 设计模式、架构与工程化思维

【2026开年巨献】精通Python十讲:第十讲 - 设计模式、架构与工程化思维作者:培风图南以星河揽胜 声明:原创不易,转载请注明出处。 互动:如果本文对你有帮助,请不吝 点赞、收藏、关注!你的支持是…...

2.4 复现案例:在A股复现一个经典价值因子(代码+数据)

2.4 复现案例:在A股复现一个经典价值因子(代码数据) 为了完成本章节的编写,花钱买了数据权限,并对代码做了多次优化,所有代码都已经过测试。与各位同学分享,预祝有意做量化的同学,账…...

速成正果经

慈于一切众生,恭敬一切众生,以所有世界永远无苦为方向,以顺一切众生的愿为方向,以增一切众生的慧为方向,以增一切众生的智为方向,以健一切众生的体为方向,以促进一切众生内心舒畅为方向&#xf…...

【初阶数据结构】连续空间的秩序之舞: 顺序表

深入浅出顺序表 📖 点击展开/收起 文章目录 文章目录深入浅出顺序表*1.1 顺序表的定义**1.2 顺序表的初始化与销毁**1.3 顺序表核心讲解之增删改查**二.顺序表的特点**三.经典例题实践顺序表*1.删除顺序表中与val值相同的数并返回删除后的数组长度2.链接连个有序数组…...

免费使用云服务器训练深度学习模型

目前应该有很多课程设计或者毕业设计都是关于深度学习的,如果电脑上没有GPU的话训练一个模型需要很长时间,但是目前可以从很多云服务器上免费额度进行训练(新用户),这里记录一下使用腾讯云免费进行模型训练的流程&…...

第十四届蓝桥杯省赛C/C++ 大学 B 组 第五题 接龙数列

本题是一个比较基础的线性dp的题目。关于题目中所给的N个整数A1,A2.....AN,我们可以通过输入字符串的方式得到第一个值a和某尾的值b,对于以值b结尾的整数序列的最大值,我们只需用以值a结尾的整数序列最大值1即可。最后遍历结尾的可…...

【AI CTO视角】算力不是堆资源,而是一场精细化工程

经常和行业内的朋友交流,发现一个普遍现象:一提到AI算力建设,很多人的第一反应还是堆卡、扩集群、上规模,仿佛GPU数量上去了,算力竞争力自然就来了。 但从实际落地与商业化视角看,尤其在大模型规模化服务、…...

突破单车智能瓶颈:DAIR-V2X车路协同系统全栈实践指南

突破单车智能瓶颈:DAIR-V2X车路协同系统全栈实践指南 【免费下载链接】DAIR-V2X 项目地址: https://gitcode.com/gh_mirrors/da/DAIR-V2X 在自动驾驶技术的发展历程中,单车智能正面临难以逾越的感知边界。当车辆行驶至复杂路口或遭遇恶劣天气时&…...

AI图文识别 VS 人类学习|后Transformer时代

AI怎么识别是哪部小说总结前置: 视觉编码器负责把图片“翻译”成一种数学语言(向量),告诉大模型:“嘿,这里有一堆黑线条组成了这种形状”。然后大模型根据它的知识库反应过来:“哦,这…...

周测复盘【前缀和and差分】

其实存了三个草稿没发,因为题解半路解不出来了。 花了四十分钟搞三个平台关联,最后一道题还是没来得及交上哈哈,OK直接进入正题 题目A Atcoder Trifecta 题目翻译: 编号为1到N的N匹马进行了一场比赛 所有马匹同时起跑&#x…...

019、FreeRTOS-MPU:内存保护单元支持

019、FreeRTOS-MPU:内存保护单元支持 从一次深夜调试说起 上周三凌晨两点,产线测试板突然重启。日志显示任务A写入了任务B的数据区,导致MPU触发MemManage异常。硬件同事坚持“MPU配置没问题”,软件同事咬定“代码逻辑没问题”——这种场景太熟悉了。最终发现是任务栈溢出…...

Meta推出由高薪超级智能实验室研发的全新AI模型

Meta于本周三正式发布了其最新人工智能模型,这也是该公司组建一支高薪团队以在AI赛道上与竞争对手展开较量后推出的首个重磅成果。这款名为Muse Spark的新模型由Meta超级智能实验室打造。该实验室汇聚了一批来自各大AI公司的顶尖人才,于去年正式成立&…...

Phi-4-Reasoning-Vision开源大模型:支持ONNX Runtime加速部署

Phi-4-Reasoning-Vision开源大模型:支持ONNX Runtime加速部署 1. 项目概述 Phi-4-Reasoning-Vision是一款基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为双卡RTX 4090环境优化。这个工具严格遵循官方SYSTEM PROMPT规范&…...

Meta携全新模型Muse Spark重返AI竞争赛道

Meta超级智能实验室正式发布旗下首款模型,这也是自马克扎克伯格斥巨资对公司AI体系进行全面改革以来的重要里程碑。该模型名为Muse Spark,目前已接入美国市场的Meta AI应用程序及Meta AI官网。据官方公告,未来数周内,Muse Spark还…...

电脑无法升级Windows 11?ChromeOS Flex是个不错的替代方案

谷歌再次提醒用户:即便你使用的是PC,也不必被微软的操作系统所束缚。事实上,这家科技巨头正在让用户切换到ChromeOS Flex变得前所未有的简单。谷歌近期与二手电子产品公司Back Market达成新合作,现已推出ChromeOS Flex USB安装套件…...

突破语言壁垒:FanControl本地化引擎深度配置指南

突破语言壁垒:FanControl本地化引擎深度配置指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanC…...

周鸿祎西安交大演讲:AI时代青年的机遇与挑战

【赓续“西迁精神”,驾驭AI重塑竞争力】近日,西安交通大学迎来建校130周年暨西迁70周年纪念大会,360集团创始人、西安交大杰出校友周鸿祎重返母校发表主旨演讲。他勉励青年学子赓续“西迁精神”,坚守“解决真问题”的底色。在人工…...

GoCodingInMyWay嘶

一、什么是 Q 饱和运算? 1. 核心痛点:普通运算的 “数值回绕” 普通算术运算(如 ADD/SUB)溢出时,数值会按补码规则 “回绕”,导致结果完全错误: 示例:int8_t 类型最大值 127 1 → 结…...