MATLAB | 绘图复刻(二十三)| Nature同款雷达图

Hello 真的好久不见,这期画一个Nature同款雷达图,原图是下图中的i图,长这样:

本图出自:

  • Pan, X., Li, X., Dong, L. et al. Tumour vasculature at single-cell resolution. Nature 632, 429–436 (2024). https://doi.org/10.1038/s41586-024-07698-1

本期复刻效果:

本期说是绘图复刻其实本质上是对很久之前写的雷达图工具的一次功能开发,雷达图工具可以在 fileexchange 找到:

  • https://www.mathworks.com/matlabcentral/fileexchange/126450-radar-chart

当然我会把工具和完整代码一并放入gitee平台并把链接在文末分享。先开始正文,首先给个该工具的基本用法:

X=randi([2,8],[4,7])+rand([4,7]); % 随机生成数据
RC=radarChart(X); % 生成雷达图对象
RC.PropName={'建模','实验','编程','总结','撰写','创新','摸鱼'};
RC.ClassName={'同门A','同门B','同门C','同门D'};
RC=RC.draw(); % 画图
RC=RC.legend(); % 添加图例

可以看到使用方法非常简单。
以下开始复刻 Nature绘图:

正文

0.数据准备和对象创建

figure('Position',[600,200,600,600]);Data1 = rand([2,10]);
RC = radarChart(Data1);

1.基础设置和绘图

包括刻度范围,背景所占范围,初始角度,标签是顺时针还是逆时针排布等信息,以及变量名和配色。

RC.RLim = [0,1];         % 数据范围设置为 0,1            Set the data range to be between 0 and 1
RC.RTick = [0,.5,1];     % 半径刻度 0,.5,1              Set radius ticks at 0, 0.5, and 1
RC.RRange = [.1,1];      % 背景所占的比例范围            Set the range for the background (0.1 to 1)
RC.Rotation = pi/2;      % 初始角度                     Set the initial angle
RC.ThetaDir = 'reverse'; % 标签排布方向(逆时针还是顺时针) Set the direction of the label arrangement% 设置变量名
RC.ClassName = {'Stalk-like','Tip-like'};
RC.PropName = num2cell('A':'J'); 
% RC.PropName = {'A','B','C','D','E','F','G','H','I','J'}
RC.CList = [151,125,154; 179,97,97]./255;RC = RC.draw();


2.修改背景和刻度线及标签

% 设置一下背景线条粗细等属性
RC.setPropLabel('FontSize',21,'FontName','Times New Roman');
RC.setRTick('LineWidth',2);
RC.setRLabel('Color','none');
RC.setBkg('EdgeColor','none');
RC.setThetaTick('LineWidth',2);
RC.setType('Both')


2.修改图形并添加图例

RC.setPatchN(1, 'LineWidth',5, 'MarkerSize',8);
RC.setPatchN(2, 'LineWidth',5, 'MarkerSize',8);RC = RC.legend();
RC.setLegend('FontSize',21, 'FontName','Times New Roman');

本文完整代码还将被放在gitee仓库:

  • https://gitee.com/slandarer/PLTreprint

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

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

相关文章

React Hooks UseCallback

开发环境:React Native Taro TypescriptuseCallback的用途,主要用于性能优化:1 避免不必要的子组件重渲染:当父组件重渲染时,如果传递给子组件的函数每次都是新创建的,即使子组件使用了 React.memo&#…

使用SD为VFX制作贴图

1.制作遮罩 Gradient Linear 1 通过Blend 可以混合出不同遮罩 2.径向渐变 Shape 节点 , 非常常用 色阶调节灰度和渐变过渡 曲线能更细致调节灰度 色阶还可以反向 和圆盘混合 就是 菲涅尔Fresnel 3. 屏幕后处理渐变 第二种方法 4. 极坐标 Gradient Circular Threshold 阈值节…

面经分享二:Kafka、RabbitMQ 、RocketMQ 这三中消息中间件实现原理、区别与适用场景

一、实现原理 (Implementation Principle) 1. Apache Kafka:分布式提交日志 (Distributed Commit Log) Kafka 的核心设计理念是作为一个分布式、高吞吐量的提交日志系统。它不追求消息的复杂路由,而是追求数据的快速、持久化流动。 存储结构:…

Android开发——初步了解AndroidManifest.xml

Android开发——初步了解AndroidManifest.xml ​ AndroidManifest.xml 是 Android 应用的清单文件,包含了应用的包名、组件声明、权限声明、API 版本信息等。它是 Android 应用的“说明书”,系统通过它了解应用的结构和行为。咱们的AndroidManifest文件实…

ecplise配置maven插件

1.下载maven 2.配置系统变量 MAVEN_HOME: E:\CODE\MAVEN\apache-maven-3.0.4 3.配置环境变量 %MAVEN_HOME%\bin 4.cmd:mvn -version 注1 如图所示为:成功 注1:配置成功的前提是要有配置JAVA_HOME,如果没有配置,则…

Vue 项目性能优化实战

性能优化有一套「发现 → 定位 → 解决」的闭环方法论。本文以真实项目为蓝本,从编码阶段到上线监控,给出一条可落地的 Vue 性能优化路线图。 一、量化指标定位性能瓶颈 任何优化之前先用量化证据锁死问题。 Lighthouse 一键跑分:首屏、交互、…

阿里云智能多模态大模型岗三面面经

阿里云智能多模态大模型岗三面面经(详细问题感受) 最近面试了 阿里云智能集团 - 多模态大模型岗位,三轮技术面,整体体验还不错。问题整体偏常规,但对项目的追问比较细致。这里整理一下完整面经,供准备类似岗…

C++ 条件变量 通知 cv.notify_all() 先释放锁再通知

简短的回答是:先释放锁,再通知(notify_one 或 notify_all)通常是更优的选择。 虽然标准允许两种顺序,但“先解锁,后通知”的性能通常更好。 下面我们来详细解释原因和两种方式的区别。 先通知,后…

案例精选 | 南京交通职业技术学院安全运营服务建设标杆

导语 随着教育信息化的深入推进,高校已成为数字化转型的前沿阵地。然而,伴随着教学、科研、管理等业务系统的全面上云与互联互通,高校网络环境日益复杂,面临的网络安全威胁也愈发严峻。勒索病毒、数据泄露、APT攻击等安全事件频发…

AI安全必修课:模型偏见检测与缓解实战

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,80G大显存,按量计费,灵活弹性,顶级配置,学生更享专属优惠。 引言:AI偏见——看不见的技术债务 2018年&#xff0c…

Trae + MCP : 一键生成专业封面

每日一句 人生只有走出来的美丽, 没有等出来的辉煌。 目录 每日一句 前言 一.核心工具与优势解析 二.操作步骤:从配置到生成广告封面 前期准备:确认环境与工具版本 第一步. 获取配置代码 第二步:在 Trae 中导入 MCP 配置…

Eureka与Nacos的区别-服务注册+配置管理

Eureka与Nacos的区别-服务注册配置管理 以下是 Eureka 和 Nacos 的核心区别对比,帮你清晰理解它们的不同定位和特性: ​1. 核心定位​ ​Eureka:​​ ​纯服务注册与发现中心,源自 Netflix,核心功能是维护服务实例清单…

这才是真正懂C/C++的人,写代码时怎么区分函数指针和指针函数?

1.介绍 很多初中级开发者常常在这两个术语之间感到困惑,分不清它们的定义、语法和应用场景,从而在实际编程中埋下隐患。本文旨在拨开迷雾,从概念定义、语法解析、核心区别及实战应用四个维度,对函数指针与指针函数进行一次全面、深入的辨析,帮助您彻底厘清这两个概念,并…

Go基础(④指针)

简单示例package mainimport "fmt"func main() {var num int 100var p *int &num // 指向int类型的指针fmt.Println(*p) // 解引用,输出 100*p 200 // 通过指针修改原变量fmt.Println(num) // 输出 200 }package mainimport "fmt…

java社交小程序源码支持APP多端springboot部署与功能模块详解

构建一个支持 多端访问、实时互动、商城交易 的综合型应用,已成为众多企业和开发团队的共同目标。由 宠友信息技术有限公司 打造的 友猫社区,正是基于 Spring Boot 技术栈 的全端解决方案,既能支持 微信小程序、APP、PC管理后台,又…

代理连接性能优化:提升网络效率的关键技术与实践

在当今数字化时代,代理连接性能优化已成为网络架构设计中的关键环节。本文将深入探讨如何通过技术手段提升代理服务器的响应速度、稳定性和资源利用率,帮助读者构建高效可靠的代理网络体系。 代理连接性能优化:提升网络效率的关键技术与实践 …

Rust 元组

简介 元组可以由多种类型组成,长度固定。 创建元组 // 固定类型 let tup1: (i32, f64, u8) (500, 8.8, 1);// 不固定类型 let tup2 (500.99, 8.8, 1, 9.99);println!("{}", tup2.0);用模式匹配解构元组 let tup (500.99, 8.8, 1, 9.99); let (x, y…

突破闭集限制:3D-MOOD 实现开集单目 3D 检测新 SOTA

【导读】 单目 3D 目标检测是计算机视觉领域的热门研究方向,但如何在真实复杂场景中识别“未见过”的物体,一直是个难题。本文介绍的 3D-MOOD 框架,首次提出端到端的开集单目 3D 检测方案,并在多个数据集上刷新了 SOTA。 目录 …

Python爬虫数据清洗实战:从杂乱无章到整洁可用

小伙伴们,做爬虫最头疼的不是抓数据,而是抓回来那一堆乱七八糟的内容!价格里混着符号、日期格式千奇百怪、还有重复和缺失的值,看着就头大。别慌,咱们用Python几招就能搞定。Pandas处理表格数据是真香,正则…

打工人日报#20250906

打工人日报#20250906 周六了! 今天出门读者特别痛,本来都想爽约了,不过忍下来了了,现在看来很值得! 不过还是要好好吃早餐、和热水! 阅读 《小米创业思考》 第一章 奇迹时代 看完了 就是快呀 好的产品 好的…