5、数据可视化:点图、抖动图、范围点图与箱线图的应用

数据可视化:点图、抖动图、范围点图与箱线图的应用

在数据可视化领域,选择合适的图表类型对于准确传达数据信息至关重要。本文将通过两个案例,详细介绍点图、抖动图、范围点图和箱线图的创建方法及应用场景。

办公必需品案例研究

办公必需品公司的高级管理团队想了解客户平均每笔订单的消费金额。仅使用直方图可能无法全面传达所有见解,因此需要结合其他图表类型。

1. 创建基本点图

点图是一种一维图表,用圆圈(点)表示数据,每个点代表一个数据点。当数据点较多或维度内成员较多,或者数据点的分布是重要见解时,点图非常有效,且占用屏幕空间少。创建基本点图的步骤如下:
1. 将 [Order ID] 拖到“标记”卡的“详细信息”上,定义数据显示级别。
2. 将 SUM([Sales]) 拖到“列”上。
3. 将标记类型更改为“圆形”。
4. 由于较小值的数据较密集,将颜色不透明度更改为 60% 以添加透明度。
5. 从“分析”窗格中拖动“平均线”到整个表格,以回答最初的问题。

创建完成后,可以发现较小值周围和平均值附近存在大量数据,但也有明显的离群值。不过,很多数据点重叠,难以看清单个数据点。

2. 创建抖动图

抖动图结合了点图的优点,同时将成员在 y 轴上随机分布,减少数据点的重叠。如果使用 Tableau 提取或发布的数据源,可以使用内置的 RANDOM() 函数确保抖动自然且不受其他指标影响。创建抖动图的步骤如下:
1. 双击“行”,输入 RANDOM() 并按 Enter,将聚合方式从 SUM(RANDOM()) 更改,避免过度聚合返回大于 1 的值。

相关推荐

数据可视化实战:箱线图与散点图组合绘制全解析

在数据分析和可视化领域,掌握核心的统计图表是洞察数据分布与规律的基础。箱线图通过四分位数、中位数和异常值点,稳健地概括了数据的集中趋势、离散程度和极端情况,是进行多组数据比较的经典工具。其技术价值在于能够快速识别数据的整体分布特征,广泛应用于A/B测试、质量控制和学术研究等场景。然而,箱线图的抽象性也使其无法展示原始数据点的具体分布形态,可能掩盖了多峰分布或子群结构等细节信息。为此,在箱线图基础上叠加散点图,成为了一种高效的解决方案。这种组合图既能保留箱线图的宏观统计概括,又能通过散点图呈现所有样本的原始位

weixin_30172941的博客 314

R语言ggplot2实现Nature Methods风格箱线图与抖动散点图组合

数据可视化是科研论文中展示实验结果的核心技术,其中箱线图与散点图的组合能同时呈现数据分布统计特征和原始数据点。ggplot2作为R语言中最强大的可视化包,通过图层系统支持多种图表叠加,而ggbeeswarm扩展包提供的智能抖动算法能有效解决离散数据点重叠问题。这种技术组合特别适合中小规模数据集的可视化,在生物医学、心理学等领域的组间比较分析中具有重要应用价值。以Nature Methods期刊图表风格为例,合理使用箱线图的四分位距展示与抖动散点图的原始数据保留功能,配合ggpubr包的统计标注,可以创建符合

weixin_33428613的博客 272

R语言实战:3种方法打造高颜值云雨图(半小提琴+箱线+抖动散点)

本文详细介绍了使用R语言创建高颜值云雨图的三种方法,包括ggdist、gghalves和自定义函数方案。云雨图结合半小提琴图、箱线图和抖动散点图,能直观展示数据分布、统计特征和样本细节,适用于基因表达分析、临床数据对比等科研场景。文章还提供了高级美化技巧和实战案例,帮助读者快速掌握这一数据可视化利器。

weixin_29071809的博客 348

超越箱线图:Python数据可视化进阶指南与实战

数据可视化是数据分析的核心环节,其本质是将抽象数据转化为直观图形,以揭示分布规律、趋势和异常。箱线图作为经典工具,虽能概括数据五数,却常因丢失分布形状、依赖特定异常值规则而受限。在工程实践中,为满足更精细的分析需求,衍生出多种增强方案。例如,小提琴图通过核密度估计注入分布形态信息,直观展示多峰与偏态;蜂群图则增强数据颗粒感,避免重叠以呈现每个样本。这些技术能显著提升在业务汇报、异常检测等场景下的沟通效率与洞察深度。本文聚焦于箱线图的替代方案,系统解析其原理,并基于Seaborn库提供Python实战指南,帮

weixin_33743661的博客 416

R语言ggplot2复现Nature Methods箱线图与抖动散点图

数据可视化是科研论文中展示实验结果的关键技术,其中箱线图与散点图的组合能直观呈现数据分布特征与个体差异。ggplot2作为R语言中最强大的可视化包,其基于图层的语法系统支持灵活构建复合图表。通过geom_boxplot展示数据四分位距和中位数等统计量,配合geom_jitter实现散点的智能抖动排列,可有效解决数据重叠问题。这种技术方案在生物统计与医学研究领域应用广泛,特别是符合Nature Methods等顶级期刊的出版规范要求。实战中需掌握颜色映射、主题美化、统计标注等进阶技巧,最终输出满足印刷标准的出

weixin_30983353的博客 280

R语言绘图-抖动点图(jitter)绘制指南

此文内容来自微信公众号:R语言搬运工,扫码关注公众号浏览更多精彩内容 往期精彩: 线图详解 点阵图详解 柱状图(条形图)详解 箱线图(盒须图)详解 在科研论文中,我们经常看到作者为展示数据点的分布范围,通过绘制箱型图直观的展示,其实,现在越来越多的作者更喜欢用抖动点图达到更好的可视化效果。此文以ggplot2和ggbeeswarm两个包展示一下抖动点图的绘制效果。 ▉ggplot2中的geom_jitter library(ggplot2) ggplot(iris,aes(Species,Sepal.W

weixin_39372811的博客 3482

Nature Methods图表复现 | 箱线图+抖动散点图

摘要:本文复刻了Nat Methods 2025论文中的箱线图叠加抖动散点图,用于展示不同方法(STY、C2L等)在单细胞空间转录组中的相关性分布。通过R代码实现:1)模拟数据调整组间均值/方差以贴近原图分布;2)使用ggplot2绘制半透明抖动点(展示离散程度)与箱线图(显示中位数/IQR);3)采用期刊风格的简洁主题与柔和配色。该模板可直接替换真实数据复用,适用于方法学论文中常见的组间性能对比可视化,兼顾整体趋势与细节分布呈现。代码输出PDF/PNG格式,完整实现见正文。

Protein Designer的博客 261

箱线图汇总ggplot2(自备)

数据使用鸢尾花数据模拟。

hx2024的博客 2005

抖音a_bogus参数逆向避坑指南:从环境检测到XHR请求的全流程解析

本文详细解析了抖音a_bogus参数在v1.0.1.19版本下的逆向工程全流程,重点介绍了如何通过PyV8Env框架进行有效的补环境操作,以绕过严格的环境检测。内容涵盖从环境初始化、关键事件触发到模拟XHR请求获取签名的完整步骤,并提供了可运行的Python代码示例和常见检测点的避坑指南,帮助开发者稳定生成有效的a_bogus参数。

tech5的博客 598

蓝牙 - 如何在Windows下抓取蓝牙数据

选择Windows Instarller(64-bit),最好不要选择PortableApps版,因为后面需要通过btvs.exe来启动Wireshark,如果是绿色可移植版,会启动失败。在安装完以后,找到btvs.exe文件,位于路径:C:\BTP\v1.14.0\x86下,这个视安装版本不同路径名不同。在第一台机器上启动btvs.exe,第二台机器上手动启动wireshark,并将第一台机器的IP地址作为参数。1,同一机器上,Wireshark安装后,会自动直接启动,如上面使用方式一样。

guoqx的专栏 2万+

相机SDK开发C++篇-常用开发函数封装讲解(迈德威视相机)

/ 软触发失败,返回false } return true;= (nRet = CameraSetSysOption("NumBuffers", QString("%1").arg(getImageBufferNodeNum()).toLocal8Bit().data()))) { setLastErrorMsg("相机#%1设置缓存区数量错误,错误码:%2").arg(getCameraIndex()).arg(nRet);

GodJhin的博客 1541

【BLE系列-第六篇】GATT解析:属性、特征、描述符的逻辑关系

本文系统介绍了BLE协议中的ATT和GATT机制。ATT以"属性"为基本数据单元,包含UUID、Handle、权限和Value四个要素。GATT则在ATT基础上构建了服务、特征和描述符的层次结构:服务(UUID:0x2800/0x2801)通过声明属性标识,特征声明(UUID:0x2803)指向特征值(UUID:0x2Axx或自定义),描述符(UUID:0x2900~0x290F)提供附加信息。GATT复用ATT发现机制,通过定义特定UUID语义实现服务发现和特征管理。这种设计使BLE设

qq_43399763的博客 1929

基于OpenSSL的CA建立及证书签发(签发多域名/IP)

自签SSL证书(多域名/IP) 本文基于以下环境: 内核信息:Linux zabbix 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux 系统版本:CentOS Linux release 7.6.1810 (Core) OpenSSL版本:OpenSSL 1.0.2k-fips 26 Jan 2017 【前言】 在基于OpenSSL的CA建立及证书签发一文中(后面统.

hobby云说 4644

拆解一个带主动均衡的BMS模块:从变压器、MOS管矩阵到控制逻辑,图文详解内部设计与成本构成

本文深度拆解了一款带主动均衡功能的BMS模块,详细解析了其核心架构、元器件选型与成本构成。通过高频变压器、MOS管矩阵等硬件设计,该模块实现了高达87%的能量转移效率,远超普通被动均衡方案。文章还揭示了汽车级PCB设计、软件策略优化等关键技术细节,为锂电池管理系统设计提供了实用参考。

weixin_42638178的博客 345

badusb详细制作教程(两种方式实现远控)

badusb是一种几乎可以突破任何杀毒软件和防火墙的设备,堪称渗透测试利器 文章目录前言一、什么是badusb?二,badusb的优点三,badusb是如何攻击的?badusb原理HID攻击漏洞产生原因三、准备步骤1.设备2,编辑器的安装与设置四,编写代码(重点)第一种: SEToolkit + badusb实现PowerShell注入攻击第二种:Cobalt Strike + badusb 实现PowerShell注入攻击五,烧录六,badusb有多强大攻击场景总结 BadUSB是《黑客军团》中

Ghost_system的博客 1万+

C#版OpenCV:OpenCVSharp 最详细最全面教程(万字详细总结)

OpenCVSharp 是一个用于 .NET 环境的 OpenCV 包装库,它提供了一种简便的方法来利用 OpenCV 的功能进行图像和视频处理。OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉和机器学习软件库,最初由 Intel 研发并发布。OpenCVSharp 让 C# 和其他 .NET 语言的开发者可以方便地访问 OpenCV 的强大功能。// 打印 OpenCV 版本信息Cv2。

仰望星空的博客 2万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

上一篇: 15、非完整移动机器人与多航天器的分布式控制策略
下一篇: 20、货币去化的数学模型分析
php55
博客等级 码龄15年 51粉丝 1553原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值