科研绘图(一)山脊图

从今日开始,为大家开辟一个新的系列科研绘图。同一个竞赛下,大家都近乎相同的解题思路下。之所以能出现一等二等三等奖的区别很大部分都在于结果的可视化,为了能更好地帮助大家进行可视化,今后将专门推出一个可视化板块,推出各种好看实用的可视化图形。第一次给大家推荐的是山脊图,用以描述多个数据的分布方式。数模论文汇中,可以用作初始数据的可视化表达,即用这样图来解释题目给出了什么样的数据。下面是详细内容:

山脊图(Ridge Plot),也称为Joy Plot。它是一种数据可视化的方法,用于展示一个或多个组的数据分布。在山脊图中,每个组的数据分布通过平滑的密度曲线表示,这些曲线沿垂直轴堆叠排列,从而产生类似山脊的视觉效果。这种图表尤其适用于比较不同组的数据分布情况。

山脊图的制作基于核密度估计(Kernel Density Estimation, KDE),这是一种估计概率密度函数的非参数方式。与传统的条形图或直方图相比,山脊图提供了一种更平滑、更直观的方式来展示数据的分布情况。它特别适合于展示大量组的数据分布,可以帮助观察者理解不同组之间的差异和相似之处。

山脊图(Ridge Plot)是一种数据可视化工具,主要用于比较多个分布。以下是山脊图的一些优点和缺点:

优点

1. 比较能力:非常适合比较多个分布的形状和大小。它能清晰地展示不同组之间的变化和趋势。  

2. 空间效率:通过在单个图中堆叠,山脊图可以有效地利用空间,显示多组数据,避免了创建多个单独的密度图。

3. 美观性:山脊图在视觉上吸引人,可以用不同的颜色和样式来区分不同的组,使得数据更加生动和直观。

4. 趋势识别:可以轻松识别多个群体数据中的共同模式和异常值。

5. 数据量:适用于展示大量数据集,而不会显得拥挤或不清晰。

缺点

1. 过度拥挤:如果组的数量过多,山脊图可能会显得拥挤,使得个别分布难以辨认。

2. 精确度:由于重叠,难以精确读取特定点的值,尤其是在分布之间的重叠区域。

3. 数值比较:虽然能够展示分布趋势,但不适合精确比较不同组之间的数值。

4. 边缘效应:在堆叠的密度图中,可能会产生误导,例如,边缘的分布可能看起来比实际更少。

本次更新主要以matlab为主,python实现代码也放于文末展示

首先是,绘制最初始的,最简单的山脊图,如下所示

% 清空环境变量和窗口
clear; close all;% 生成模拟数据
data = [];
groups = 6;
for i = 1:groups
data = [data; normrnd(i, 0.5, [200, 1])];
end% 为每组数据创建一个标签
group = repelem(1:groups, 200)';% 创建一个图形窗口
figure;% 对每组数据进行绘制
for i = 1:groups
% 选择当前组的数据
subset = data(group == i);
% 计算核密度估计
[f, xi] = ksdensity(subset);
% 绘制密度曲线,并上移相应的高度以创建堆叠效果
plot(xi, f + i, 'LineWidth', 2);
hold on;
end% 添加图例和坐标轴标签
legend('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5', 'Group 6');
xlabel('Value');
ylabel('Density');
title('Ridge Plot Example');% 显示图形
hold off;

为了进一步美化图形,添加一些元素和调整一些参数来增强其视觉效果。

% 清空环境变量和窗口
clear; close all;% 生成模拟数据
data = [];
groups = 6;
colors = jet(groups); % 使用彩虹色系
for i = 1:groups
data = [data; normrnd(i, 0.5, [200, 1])];
end% 为每组数据创建一个标签
group = repelem(1:groups, 200)';% 创建一个图形窗口
figure;% 对每组数据进行绘制
for i = 1:groups
% 选择当前组的数据
subset = data(group == i);
% 计算核密度估计
[f, xi] = ksdensity(subset);
% 绘制密度曲线,并上移相应的高度以创建堆叠效果
plot(xi, f + i, 'LineWidth', 2, 'Color', colors(i, :));
hold on;
end% 添加图例和坐标轴标签
legend('Group 1', 'Group 2', 'Group 3', 'Group 4', 'Group 5', 'Group 6', ...
'Location', 'northeastoutside');
xlabel('Value');
ylabel('Density');
title('Enhanced Ridge Plot Example');% 设置坐标轴界限和网格
xlim([min(data), max(data)]);
ylim([1, groups + 1]);
grid on;% 设置字体大小
set(gca, 'FontSize', 10);% 显示图形
hold off;

下面两个是matalb美化后的版本
下面进行python展示

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.stats import gaussian_kde# 如果您想尝试使用默认样式,可以注释掉下面这行代码
# plt.style.use('seaborn')# 生成模拟数据
groups = 6
data = pd.DataFrame({f'Group_{i}': np.random.normal(loc=i, scale=0.5, size=200) for i in range(1, groups + 1)})# 转换为“长格式”
data_long = pd.melt(data, var_name='Group', value_name='Value')# 初始化图形
fig, ax = plt.subplots(figsize=(10, 6))# 对每组数据进行绘制
for i, group in enumerate(data.columns):# 选择当前组的数据subset = data[group]# 计算核密度估计density = gaussian_kde(subset)xs = np.linspace(subset.min(), subset.max(), 200)ys = density(xs)# 绘制密度曲线,并上移相应的高度以创建堆叠效果ax.plot(xs, ys + i, lw=2)# 添加图例和坐标轴标签
ax.legend([f'Group {i + 1}' for i in range(groups)])
ax.set_xlabel('Value')
ax.set_ylabel('Density')
ax.set_title('Ridge Plot Example')# 显示图形
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/610534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决方案|镭速助力汽车行业实现数据高速传输数字化进程

在新一代信息技术驱动的数字经济时代,数据已然成为新型生产要素,是国家基础性资源和战略性资源,在汽车市场全球化背景下,产品、数据跨境、区域协同将成为车企未来常态。 1、数字时代,车企数据管理面临新课题 汽车产业…

使用Nonebot编写QQ机器人

使用 NoneBot 这个工具,来编写 QQ 机器人。 安装基础软件 一、安装 NoneBot 库 直接使用 pip 安装即可 pip install nonebot二、安装酷Q 软件和 HTTP API 插件 酷Q 软件可以直接到官网下载,https://cqp.cc/b/news,或者可以到网盘下载&am…

互斥、自旋、读写锁的应用场景

互斥、自旋、读写锁的应用场景 锁🔒1、互斥锁、自旋锁2、读写锁:读写的优先级3、乐观锁和悲观锁总结: 锁🔒 ​ 多线程访问共享资源的生活,避免不了资源竞争而导致错乱的问题,所以我们通常为了解决这一问题…

虚拟机Ubuntu网络配置

电脑有两个系统,windows系统和ubuntu系统,那网卡到底给哪一个用呢,所以要选择桥接模式,就可以共用网卡 但是我们电脑网卡,有线网卡,无线网卡,到底使用哪个网卡,所以选择桥接到自动或…

Word中的书签

书签是一种标记,用于标记文档中的特定位置,以便稍后快速导航到该位置。 我常用的是WPS里面的Word 1、如何使用书签 书签在插入选项卡下可以找到。 点击书签后,设置好书签名称,添加即可。 接下来在视图选项卡中找到导航窗口。选…

docker搭建部署mysql并挂载指定目录

Docker是一种轻量级、可移植的容器化平台,可以简化应用程序的部署和管理。在本文中,我们将探讨如何使用Docker来搭建和部署MySQL数据库,并将数据和配置文件挂载到外部目录,以实现数据持久化和方便的配置管理。 1: 安装Docker 首…

基于蚁群算法的TSP问题建模求解(Python)

基于蚁群算法的TSP问题建模求解 一、蚁群优化算法(Ant Colony Optimization,ACO)1.1 蚁群算法的起源——“双桥实验”1.2 蚁群优化算法思想1.3 蚁群算法应用于求解组合优化问题 二、基于蚁群算法的TSP问题建模求解2.1 旅行商问题(…

格式工厂怎么转换视频方向

格式工厂因为其免费、操作简单、功能齐全的多重优势,深受大家的喜欢。格式工厂具有可以转换视频、音频、去水印、转换GIF、图片转换、PDF合并、PDF转换等功能,然而在对视频进行剪辑的时候,往往会发现找不到格式工厂的转换视频方向的功能&…

Kibana错误【Kibana server is not ready yet】

docker部署kibana成功后,访问http://localhost:5601 ,页面返回“Kibana server is not ready yet” 运行 docker logs kibana 后提示 该错误提示为kibana的版本和es的版本不一致,将两个组件的版本更新一致即可 还有另外一种错误 在kibana的kibana.yml配…

AI老照片上色-DeOldify

🏡 个人主页:IT贫道-CSDN博客 🚩 私聊博主:私聊博主加WX好友,获取更多资料哦~ 🔔 博主个人B栈地址:豹哥教你学编程的个人空间-豹哥教你学编程个人主页-哔哩哔哩视频 目录 1. 老照片上色原理 2…

windows10+ubuntu20.04双系统中,ubuntu系统显示home空间不足的扩容方法

实际上网上有两种扩容方法,除了本文的方法外,另一种是在使用启动U盘打开试用ubuntu,应该涉及到nvidia显卡驱动问题故未采用。另一种即本文。 最开始安装双系统时内存分配没有分配好,给ubuntu系统分配的空间较小,导致了后来的的问…

Multimodal Segmentation of Medical Images with Heavily Missing Data

F是mapping function 吐槽 图3太简单了吧。作者未提供代码

iOS14 Widget 小组件调研

桌面小组件是iOS14推出的一种新的桌面内容展现形式。 根据苹果的统计数据,“一般用户每天进入主屏幕的次数超过90次”,如果有一个我们应用的小组件在桌面,每天都有超过90次曝光在用户眼前的机会,这绝对是一个顶级的流量入口。 “…

Oracle之 第1篇 Oracle 11g 简介

目录 Oracle之 第1篇 Oracle 11g 简介 1.1 Oracle概述 1.2 Oracle 11g 系统的体系结构★ 1.1 Oracle物理结构 1.1物理结构--数据文件 1.1.2 物理结构---日志文件 1.1.3 物理结构---控制文件 1.2.4 配置文件 Oracle之 第1篇 Oracle 11g 简介 1.1 Oracle概述 常用…

无线与局域网技术期末划题自制答案

简答题 1.描述5G的三大应用场景? 5G的三大应用场景包括增强型移动宽带(eMBB)、超可靠低延迟通信(URLLC)和大规模机器类型通信(mMTC)。增强型移动宽带(eMBB)主要用于支持…

android自定义时间选择

自定义时间选择器,可以更改到年月日,时分秒 一、自定义DatePicker public class CustomDatePicker {/*** 定义结果回调接口*/public interface ResultHandler {void handle(String time);}public enum SCROLL_TYPE {HOUR(1),MINUTE(2);SCROLL_TYPE(int …

【Web】CTFSHOW命令执行刷题记录1

目录 web29 web30 web31 web32 web33 web34 web35 web36 web37-39 web40 web41 (y4✌脚本) web42 -44 web45 web46 -49 web50 web51 web52 web53 web54 期末复习不了一点,不如做点旧题醒一醒手感。每一题都尽量用不同payl…

@FunctionalSpringBootTest 和@SpringBootTest注解的区别

FunctionalSpringBootTest 和 SpringBootTest 是Spring框架中用于测试的两个不同注解。下面是它们之间的主要区别: 用途和范围: SpringBootTest:这个注解用于需要测试Spring应用程序上下文的场合。它会加载完整的应用程序上下文,适…

插件和工具汇总

插件和工具汇总 【一】MyBatis Log插件【二】热部署【三】一些快捷键 【一】MyBatis Log插件 能够自动拼接参数生成执行的SQL语句,可以更清晰看到执行本次接口调用的所有sql执行条数。在我们执行myabtis的时候,有的时候报错知道哪里错了,但是…

亚马逊,速卖通,美客多卖家怎么才能安全及有效的积累产品的评论

测评补单对于亚马逊、速卖通等平台卖家来说,是一种重要的运营手段之一,通过测评补单快速增加产品的销量、评论数量,提升排名,从而打造爆款产品。 测评养号的好处包括: 1. 提升店铺信誉,制造爆款&#xff…