Matlab个性化绘图第3期—带三维球标记的折线图

前段时间有会员在群里问该如何绘制下面这种带三维球标记的折线图

本期内容就来分享一下带三维球标记的折线图的Matlab绘制思路。

先来看一下成品效果:

特别提示:本期内容『数据+代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【全家桶】查看加入方式


1. 数据准备

此部分主要是读取原始数据

% 读取数据x = 1:10;A = [5 7.5 8 1.5 1.2 1.8 2.2 2.5 2.3 2.4     8.7 1.6 1.65 2.5 2.45 2.5 1.1 1.2 1.1 1];

2. 颜色定义

作图不配色就好比做菜不放盐,总让人感觉少些味道。

但颜色搭配比较考验个人审美,需要多加尝试。

这里直接使用TheColor配色工具中的SCI权威配色库

% 颜色定义C = TheColor('sci',500);

3. 带三维球标记的折线图绘制

调用自制的‘drawball’和‘Shadow’工具,绘制初始带三维球标记的折线图

%% 折线图绘制p = plot(x,A);for i = 1:size(A,1)    set(p(i),'LineStyle','-','Marker','none','LineWidth',2.5,'Color',C(i,1:3))enddrawball(x,A,0.3,C) % 0.3为球半径Shadow([-60,45],'shiny','phong')hTitle = title('Line with Ball Plot');hXLabel = xlabel('XAxis');hYLabel = ylabel('YAxis');%% 绘制legendinter = 1; % 行距ll = 1; % 长度lx = 8; % 左上角xly = 8.5; % 左上角y% 构造线数据并绘制temp = ly:-inter:(ly-1*inter);xx = [lx lx+ll];yy = repmat(temp',1,2);for i = 1:size(A,1)    t = plot(xx,yy(i,:));    set(t,'LineStyle','-','Marker','none','LineWidth',2,'Color',C(i,1:3))end% 构造球数据并绘制bx = lx+ll/2;by = temp';drawball(bx,by,0.2,C)lab = {'Samp1' 'Samp2'};for i = 1:size(A,1)    text(lx+ll+ll*0.1,temp(i),lab{i},'HorizontalAlignment','left','VerticalAlignment','middle','FontSize',9,'FontName','Arial','color','k')end

然后再添加一些细节,并输出保存:

以上。

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

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

相关文章

【Android面试八股文】你能详细讲讲你在APK瘦身方面都做了哪些工作吗?

文章目录 一、我用到过的方法二、扩展阅读 其他的大厂方案一、我用到过的方法 面试官: 你能详细讲讲你在APK瘦身方面都做了哪些工作吗? 你: 在过去的项目中,我做了多方面的优化来减少APK的大小,从而提升应用的下载速度和安装体验。以下是一些具体的措施和技术实现: 移除不…

JavaScript的学习之旅(6.20)

目录 一、认识三个常见的js代码 二、js写入的第二种方式 三、js里内外部文件 一、认识三个常见的js代码 <script>//写入js位置的第一个地方// 控制浏览器弹出一个警告框alert("这是一个警告");// 在计算机页面输入一个内容&#xff08;写入body中&#xff…

使用PlugLink实现自动化运营:提升效率的秘密武器(附源码)

使用PlugLink实现自动化运营&#xff1a;提升效率的秘密武器 作为一款开源的自动化工具&#xff0c;PlugLink可以帮助个人和小微企业实现运营自动化&#xff0c;极大地提升工作效率&#xff0c;降低运营成本。 一、PlugLink简介 PlugLink是一个基于Python的开源自动化工具框…

候选键的确定方法-如何判断属性集U的子集K是否为候选键、如何找到关系模式的候选键

一、候选键的定义 在关系模式R(U,F)中&#xff0c;若&#xff0c;且K满足&#xff0c;则K为关系模式R的候选键 关系模式R的候选键必须满足以下两个条件&#xff1a; &#xff08;1&#xff09;必须是属性集U的子集 &#xff08;2&#xff09;完全函数决定属性集U 二、如何…

易兆微电子_嵌入式软件工程师笔试题

易先电子 嵌入式软件工程师笔试题(十七) 1.关键字 extern是什么含义, 请举例说明。 修饰符extern用在变量或者函数的声明前&#xff0c;用来说明 “ 此变量 / 函数是在别处定义的&#xff0c;要在此处引用 ”。 //main.c #include <stdio.h>int main() {extern int num…

OS复习笔记ch11-2

上一节我们学习的内容是I/O系统的特点和设备分类和差异&#xff0c;这一节我们将主要关注I/O控制方式、OS设计问题、I/O逻辑结构等。 I/O功能的演变 在专栏的ch1-2中&#xff0c;我们详细讲解了CPU与外设的三种交互方式&#xff0c;这里简单地带过。 &#xff08;1&#xff0…

使用KMP算法实现对于指定两个字符之间的字符串分割方法

import java.util.ArrayList;public class UsingKMPAlgorithmSpiltString {public static void main(String[] args) {//待分割的文本String text = "【分割符号】劳力士【分割符号】浪琴【分割符号】欧米茄【分割符号】宝珀【分割符号】百达翡丽" ;//分割符号字符串…

集合进阶(泛型、泛型通配符、数据结构(二叉树、平衡二叉树、红黑树

一、泛型类、泛型方法、泛型接口 1、泛型概述 泛型&#xff1a;是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。泛型的格式&#xff1a;<数据类型>注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 1、统一数据类型。 …

docker 指令 初级入门

Docker是一种开源的应用容器引擎&#xff0c;基于Go语言开发并遵循Apache2.0协议开源。它能够让开发者将应用及其依赖打包到一个轻量级的、可移植的容器中&#xff0c;然后发布到任何支持Docker的平台上。Docker命令是操作Docker的主要方式&#xff0c;对于Docker的初学者来说&…

上位机图像处理和嵌入式模块部署(h750 mcu串口命令处理)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面学习103和407的时候&#xff0c;当时学过串口的收发。不过当时使用的主要是阻塞的方式。这一次&#xff0c;我们看下应该怎么利用中断的形式进…

【UE5.1】制作自己的载具

目录 前言 效果 步骤 一、制作载具模型 二、载具设置 三、控制载具 四、方向盘旋转 前言 在前面我们通过UE4完成了载具的制作&#xff0c;下面我们介绍一下如何通过UE5制作载具。 效果 步骤 一、制作载具模型 制作方法同【UE4 制作自己的载具】1-使用3dsmax制作载具…

PhotoShop批量生成存储jpg

1、说明 根据之前自动批量生成psd格式的文件。打印一般都是jpg格式的&#xff0c;那如果将这些psd的文件&#xff0c;生成jpg&#xff0c;本文采用ps的动作 2、生成动作 点击窗口-动作 录屏存储jpg动作 3、根据动作生成 选择相应动作之后选择需要处理的文件夹

Java面试八股之JVM永久代会发生垃圾回收吗

JVM永久代会发生垃圾回收吗 JVM的永久代&#xff08;PermGen&#xff09;在Java 8之前是存在的一部分&#xff0c;主要用于存储类的元数据、常量池、静态变量等。在这些版本中&#xff0c;永久代确实会发生垃圾回收&#xff0c;尤其是在永久代空间不足或超过某个阈值时&#x…

c#考试知识点

第一题 //数组{1&#xff0c;2&#xff0c;3&#xff0c;&#xff0c;8&#xff0c;6} //方法&#xff08;数组&#xff0c;目标值&#xff09; //输出 //接收一个数组&#xff0c;输出目标值是数组中哪两个数的和&#xff0c;并输出下标 using System; using System.Collectio…

大数据智能化教学解决方案

引言 在信息化浪潮的推动下&#xff0c;大数据与人工智能已成为推动社会进步的重要力量。作为国家战略新兴产业&#xff0c;大数据智能化的发展对于培养具备创新精神和实践能力的高素质人才提出了迫切需求。唯众紧跟时代步伐&#xff0c;针对大数据智能化人才培养的痛点与难点…

企业该如何防查盗版?如何防软件后台泄密数据?

随着信息化的发展&#xff0c;企业日常办公越来越依赖互联网。终端以及普通PC终端在访问互联网过程中&#xff0c;会遇到各种各样不容忽视的风险&#xff0c;例如员工主动故意的数据泄漏&#xff0c;后台应用程序偷偷向外部发信息&#xff0c;木马间谍软件的外联&#xff0c;以…

websocket nignx 配置

server { location /wss { proxy_pass http://127.0.0.1:8282; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “Upgrade”; proxy_set_header X-Real-IP $remote_addr; } listen 443; location / {} 站点的其它配置… }

【Superset】匿名访问Dashboad

文章目录 环境配置 环境 操作系统&#xff1a;Debian Superset版本&#xff1a;4.0.1 配置 所有用户(无需登录)都能访问某一个看板&#xff0c;需要进行如下设置 &#xff1a; 1、匿名访问配置 按照文档的方法&#xff0c;首先在site-packages/superset目录下的config.py中…

面试突击:面向对象基础

本文已收录于&#xff1a;https://github.com/danmuking/all-in-one&#xff08;持续更新&#xff09; 面向对象三大特征 封装 封装是指把一个对象的状态信息(也就是属性)隐藏在对象内部,不允许外部对象直接访问对象的内部信息. 但是可以提供一些可以被外界访问的方法来操作属…

junit mockito 拦截器

拦截器代码 /*** Title&#xff1a;出参ASE加密拦截器* Description: 指定的url拦截&#xff0c;指定返回参数加密* Author: luohaihua* Date: 2024/06/18 16:37* Version: 1.0*/ Slf4j public class ResponseAseEncryptInterceptor extends HandlerInterceptorAdapter {Ove…