在同一张图中绘制多个相似数据

2023-11-30

我想生成一个图(X 与 Y),Z 值取决于 Y。示例如下图所示。 X 的矩阵大小与 Z 相同,但与 Y 不同。我可以将 Z 对 X 绘制出来,但我想将所有图组合成一个图,并将 Y 对 X 进行绘制。我可以将多个图绘制成一个图,但图是互相重叠的。

我的问题是有什么方法可以将多个图合并为一个图而不重叠每个图,因为每个图之间的差异非常小(例如 Z1=1,2,3,4,5 和 Z2=1.0001,2.0002,3.0001, 4.0002,5.0001)。所以,我想将每个 Z 图设置在不同的 Y 轴上。 (例如,Y=0 处的 Z1,Y=2 处的 Z2 ...)

enter image description here enter image description here

有人有什么建议或想法吗?

谢谢


我将澄清我在评论中写的想法。 首先,我们来获取一些数据:

x = 470:0.1:484;
z1 = cos(x)/2;
z2 = sin(x)/3;
z3 = cos(x+0.2)/2.3;

我将只绘制三个数据集,所有这些对于扩展到任意数量的数据集来说都是微不足道的。

想法1:多轴

这里的想法很简单,就是使用subplot创建小型多重类型图:

ytick = [-0.5,0.0,0.5];
ylim = [-0.9,0.9]);
figure

h1 = subplot(3,1,1);
plot(x,z1);
set(h1,'ylim',ylim,'ytick',ytick);
title('z1')

h2 = subplot(3,1,2);
plot(x,z2);
set(h2,'ylim',ylim,'ytick',ytick);
title('z2')

h3 = subplot(3,1,3);
plot(x,z3);
set(h3,'ylim',ylim,'ytick',ytick);
title('z3')

enter image description here

请注意,例如,可以从顶部两个图中删除刻度标签,仅在底部一个图中保留标签。然后,您还可以移动轴,使它们更靠近(如果同一个图中有很多这些线,这可能是必要的):

set(h1,'xticklabel',[],'box','off')
set(h2,'xticklabel',[],'box','off')
set(h3,'box','off')
set(h1,'position',[0.13,0.71,0.8,0.24])
set(h2,'position',[0.13,0.41,0.8,0.24])
set(h3,'position',[0.13,0.11,0.8,0.24])
axes(h1)
title('')
ylabel('z1')
axes(h2)
title('')
ylabel('z2')
axes(h3)
title('')
ylabel('z3')

enter image description here

想法2:相同的轴,带有偏移量的绘图

这是更简单的方法,因为您只处理单个轴。 @Zizy Archer 已经展示了如果数据全部位于单个 2D 矩阵中,那么移动数据是多么容易Z。在这里我只是绘制z1, z2+2, and z3+4。根据您的喜好调整偏移量。接下来,我设置'ytick'属性来创建单独图形的错觉,并设置'yticklabel'属性,以便 y 轴上的数字与绘制的实际数据相匹配。最终结果与上面的多轴图类似,但它们都在单个轴中:

figure
plot(x,z1);
hold on
plot(x,z2+2);
plot(x,z3+4);
ytick = [-0.5,0.0,0.5];
set(gca,'ytick',[ytick,ytick+2,ytick+4]);
set(gca,'yticklabel',[ytick,ytick,ytick]);
text(484.5,0,'z1')
text(484.5,2,'z2')
text(484.5,4,'z3')

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在同一张图中绘制多个相似数据 的相关文章

  • 修复 ggplot 中构面中的数据顺序

    我在使用 ggplot 绘制数据时遇到问题 我无法使每个方面内的数据正确排序 我的样本数据是 data lt structure list Parameter c 0 1 0 7 0 0 0 2 0 2 0 7 0 0 0 1 0 3 0
  • 再现频率矩阵图

    我想在 R 中重新创建一个情节 情节如下 来源 Boring E G 1941 作为动态平衡的统计频率 心理学评论 48 4 279 这略高于我的工资等级 能力 因此在这里询问 无聊的状态 第一次 A 只能出现 从不 0 或 总是 1 在
  • getappdata 在 MATLAB 中返回空矩阵

    我有一段代码 我在其中使用setappdata然后我使用以下方式调用数据getappdata即使它不为空 它也会返回一个空矩阵 我的一段简化代码如下 function edit1 Callback hObject eventdata han
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • 将自定义误差线添加到 seaborn regplot 和 residplot

    有没有一种方法可以将自定义错误栏添加到seaborn regplot和residplot中 就像使用yerr对matplotlib错误栏所做的那样 例子在这里 如果我只是添加 yrr 参数就会发生错误 import seaborn as s
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • 将 Matlab 数组移植到 C/C++

    我正在将 matlab 程序移植到 C C 我有几个问题 但最重要的问题之一是 Matlab 将任何维度的数组都视为相同 假设我们有一个这样的函数 function result f A B C result A 2 B C A B and
  • 通过 cuFFT 进行逆 FFT 缩放

    每当我使用 cuFFT 绘制程序获得的值并将结果与 Matlab 的结果进行比较时 我都会得到相同形状的图形 并且最大值和最小值位于相同的点 然而 cuFFT 得到的值比 Matlab 得到的值大得多 Matlab代码是 fs 1000 s
  • 从数据框中绘制多条平滑线

    我对 R 比较陌生 我正在尝试绘制从 csv 文件加载的数据框 数据由 6 列组成 如下所示 xval col1 col2 col3 col4 col5 第一列 xval 由一系列单调递增的正整数 例如 10 40 60 等 组成 其他列
  • MATLAB:将当前文件夹设置为脚本位置

    我在不同的文件夹中有一些脚本和数据 我使用addpath和相对路径经常 我的问题是 只有当我的当前文件夹是我执行的脚本所在的位置时 这才有效 例如 如果我执行添加路径 X 的脚本 A 然后执行位于路径 X 中的脚本 B 则 Matlab 不
  • matlab 中的动画绘图

    我正在尝试创建一个三角形的动画图 最终结果应该是十个三角形 后面跟着两个更大的三角形 后面跟着一条直线 使用matlab文档 https de mathworks com help matlab ref drawnow html 我最终得到
  • 如何在R中分离两个图?

    每当我运行这段代码时 第一个图就会简单地覆盖前一个图 R中有没有办法分开得到两个图 plot pc title main abc xlab xx ylab yy plot pcs title main sdf xlab sdf ylab x
  • 保存符号方程以供以后使用?

    From here http www mathworks com help releases R2011a toolbox symbolic brvfu8o 1 html brvfxem 1 我正在尝试求解这样的符号方程组 syms x y
  • 更新:随机将行添加到矩阵中,但遵循严格的规则

    以下是一个更大的矩阵的一部分 0 1 0000 1 0000 77 0000 100 0000 0 0 2500 0 1 0000 1 0000 72 0000 100 0000 0 2500 0 2500 0 1 0000 1 0000
  • 通过颜色渐变修补圆

    我正在尝试绘制一个颜色渐变 我希望它沿轴均匀 在下图由角度定义的情况下 pi 7 当我使用patch命令 绘图与所需的梯度方向匹配 但沿其方向并不均匀 沿圆的点之间形成各种三角形 这是代码 N 120 theta linspace pi p

随机推荐

  • Java输出String和方法返回时,为什么方法返回先输出?

    在下面的代码中 如果字符串 Mult 出现在test1 4 方法调用 为什么方法输出在字符串之前 为什么它会从输出方法的第一部分跳出 然后离开方法输出字符串 然后返回到方法输出方法的返回值 code public class Scratch
  • 通过两个代理的 HttpWebRequest

    我最近建立了一个网站 它使用地理 DNS 将 DNS 解析为两个不同的 IP 具体取决于您的位置 然而 这意味着要监控网站 我需要确保该网站在两个地理位置都可用 为此 我在 net 中编写了一个小程序 不断尝试使用 HttpWebReque
  • 连接到特定 HID 配置文件蓝牙设备

    我将蓝牙条形码扫描仪连接到我的 Android 平板电脑 条码扫描仪与 Android 设备绑定作为输入设备 HID 配置文件 它在系统蓝牙管理器中显示为键盘或鼠标 我发现蓝牙配置文件输入设备类存在但被隐藏 class 和 btprofil
  • 使用 LibGDX 登录 Google

    我有问题 我正在用 LibGDX 制作游戏 现在我想实现Google登录 我到处寻找 但什么也没找到 我需要的是一个解析器来抽象特定平台的代码 但我不知道该怎么做 有人可以帮忙吗 EDIT 这是代码 这是我的 Android 解析器 pub
  • 用于在页面内创建 div 样式窗口的 JavaScript 库

    我试图找到一个好的 JavaScript 库 它可以在我网站的页面中创建一个漂亮的 内部窗口 弹出窗口 我不想担心屏幕定位 即不必计算窗口的大小是否会超出屏幕等 而只需制作一个包含内容的新弹出窗口 我将使用 NET 3 5 ASP NET
  • 使用 Plink 在另一台服务器(jumphost)后面的远程服务器上执行命令

    我正在尝试使用 Power Automate Desktop for PuTTY 进行自动化 我遇到了一个使用 cmd 来运行命令的解决方案plink 我使用了以下步骤 我将PuTTY添加到系统变量中 我使用了命令 在cmd中 plink
  • CRM 2013 中的富文本编辑器 (WYSIWYG)

    有时 CRM 界面中的 HTML 编辑器很有用 可以直接在 CRM 2013 中实现编辑器 作为编辑器 我们将使用 ckeditor 它允许在不安装在服务器上的情况下使用它 确定您想要使用富文本编辑器的字段 Create html 网络资源
  • 如何在同一时间 shell 中读取两个文件

    我有两个文件 A john 1 2 3 4 5 6 7 Ely 10 9 9 9 9 9 9 Maria 3 5 7 9 2 1 4 Rox 10 10 10 10 10 10 10 B john 7 5 Ely 4 5 Maria 3 7
  • 对 top_hits 聚合求和

    简而言之 问题是 如果我对每个存储桶的 top hits 进行聚合 如何对结果结构中的特定值求和 Details 我有许多记录 其中包含每个商店的一定数量 我想获得每个商店所有最新记录的总和 为了获取每个商店的最新记录 我创建了以下聚合 l
  • 最新 Xamarin Forms 2.2.0.45 上存在数百个 Resource.Designer.cs 构建错误

    我有一个新的 Xamarin Forms 解决方案设置 其中包含 PCL iOS 应用程序 构建良好 和 Android 项目 Android 项目已更新为 Xamarin Forms 2 2 0 45 的最新 Nuget 包 以匹配 PC
  • git 无法执行“pack-objects”:权限被拒绝

    从我刚刚添加的自托管 git 远程拉取时 我收到此错误 git pull myremote master fatal cannot exec pack objects Permission denied fatal git upload p
  • 错误 C3861:“initNode”:找不到标识符

    我收到以下编译错误 错误 C3861 initNode 找不到标识符 下面是代码 include
  • 我可以在选择列表中使用 Postgres 关键字作为别名吗?

    今天早上我遇到了一个奇怪的问题 我正在创建一个视图来简化 Postgres 表中的应用程序列表 这失败了 CREATE OR REPLACE VIEW application view AS SELECT COALESCE nullif f
  • 创建带有参数的 bash 脚本

    我知道如何在 bash 中提出问题 例如 您想创建一个目录吗 并根据该输入执行某些操作 但我想创建一个 bash 脚本 我可以这样做 somescriptname sh install somescriptname sh update so
  • 如何在 PyCharm 中获得 COM 编程的代码完成?

    使用时app win32com client Dispatch Some Application PyCharm中有没有可行的方法来完成代码 必须重新输入 或复制粘贴 API 文档中的所有内容是相当乏味的 因此创建骷髅是 是否没有其他方法可
  • UITextView setText 在 ios8 中不应跳转到顶部

    以下 iOS 8 代码每秒被调用一次 void appendString NSString newString toTextView UITextView textView textView scrollEnabled NO textVie
  • Outlook 的多合一插件

    我想开发一款适用于 Outlook 的一体化插件 这意味着该加载项将可用于所有 Outlook 客户端 桌面 Web 我读here我可以做到这一点 我已经为 Outlook Web 应用程序创建了加载项 并尝试将其部署到桌面客户端 但不知道
  • 在node.js中使用graphicsmagick提取gif帧

    我正在尝试使用node js 上的graphicsmagick 将gif 转换为png 在他们的文档中 他们有以下代码 pull out the first frame of an animated gif and save as png
  • 如何使 xmlserializer 仅序列化纯 xml?

    我需要获取纯 xml 而不需要在开始时和xmlns xsi http www w3 org 2001 XMLSchema instance xmlns xsd http www w3 org 2001 XMLSchema 在第一个元素中Xm
  • 在同一张图中绘制多个相似数据

    我想生成一个图 X 与 Y Z 值取决于 Y 示例如下图所示 X 的矩阵大小与 Z 相同 但与 Y 不同 我可以将 Z 对 X 绘制出来 但我想将所有图组合成一个图 并将 Y 对 X 进行绘制 我可以将多个图绘制成一个图 但图是互相重叠的