根据第三个值更改 2D 绘图线的颜色

2024-01-08

我有一个看起来像这样的数据集

 140400 70.7850 1
 140401 70.7923 2
 140402 70.7993 3
 140403 70.8067 4
 140404 70.8139 5
 140405 70.8212 3

其中第一列对应于时间(数据点之间的间隔为一秒)并且位于 x 轴上,第二列对应于距离并且位于 y 轴上。第三列是一个数字(一到五),它是运动的资格。

我想绘制一个图,根据前一个数据点的数量来改变两点之间线条的颜色。例如,我希望第一个和第二个数据点之间的线为红色,因为资格值为 1。

我看过很多关于根据强度值制作颜色滑动比例的帖子,但我只想要 5 种颜色:分别是(红色、橙色、黄色、绿色和蓝色)。

我尝试做这样的事情:

plot(x,y,{'r','o','y','g','b'})

但没有运气。

关于如何解决这个问题有什么想法吗?如果可能的话不循环。


您还可以使用适用于 2014b 之前的 Matlab 版本(至少可以追溯到 2009a)的技巧来完成此操作。
然而,它永远不会像您期望的那么简单(除非您为此处的解决方案之一编写包装器,否则您可以忘记plot(x,y,{'r','o','y','g','b'})).

诀窍是使用一个surface代替line目的。表面受益于它们CData属性和许多有用的功能来利用颜色贴图和纹理。

Matlab surf不处理一维数据,它需要一个矩阵作为输入,因此我们将通过复制每个坐标集来给出它(例如xx=[x,x]).
不过不用担心,表面会保持像线一样细,所以最终的结果并不难看。

%% // your data
M=[140400 70.7850 1
 140401 70.7923 2
 140402 70.7993 3
 140403 70.8067 4
 140404 70.8139 5
 140405 70.8212 3];

x = M(:,1) ; %// extract "X" column
y = M(:,2) ; %// same for "Y"
c = M(:,3) ; %// extract color index for the custom colormap

%% // define your custom colormap
custom_colormap = [
    1  0 0 ; ... %// red
    1 .5 0 ; ... %// orange
    1  1 0 ; ... %// yellow
    0  1 0 ; ... %// green
    0  0 1 ; ... %// blue
    ] ;

%% // Prepare matrix data
xx=[x x];           %// create a 2D matrix based on "X" column
yy=[y y];           %// same for Y
zz=zeros(size(xx)); %// everything in the Z=0 plane
cc =[c c] ;         %// matrix for "CData"

%// draw the surface (actually a line)
hs=surf(xx,yy,zz,cc,'EdgeColor','interp','FaceColor','none','Marker','o') ;

colormap(custom_colormap) ;     %// assign the colormap
shading flat                    %// so each line segment has a plain color
view(2) %// view(0,90)          %// set view in X-Y plane
colorbar

will get you:
cmapline


作为更一般情况的示例:

x=linspace(0,2*pi);
y=sin(x) ;

xx=[x;x];
yy=[y;y];
zz=zeros(size(xx));

hs=surf(xx,yy,zz,yy,'EdgeColor','interp') %// color binded to "y" values
colormap('hsv')
view(2) %// view(0,90)

will give you a sine wave with the color associated to the y value:
cmapline2

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

根据第三个值更改 2D 绘图线的颜色 的相关文章

  • Matlab 中的 3D 堆叠条形图

    我想在一个图中绘制多个堆叠条形图 detached 条形图 例如 准确地想象一下bar http mathworks com help matlab ref bar3 detached png绘图 但堆叠在一起 而不是单一颜色 Set up
  • 将值从 C++ MEX 文件返回到 MATLAB

    我正在编写一个从 C 代码中检索数据的 MATLAB 程序 为此 我在 MATLAB 中创建了一个 MEX 文件和一个网关 mexFunction 虽然可以在 MATLAB 中读取读取值 但我无法检索它来使用它 如果不清楚 我有与这里完全相
  • 用于读取csv写入数组的c++程序;然后操作并打印到文本文件中(已经用 matlab 编写)

    我想知道是否有人可以帮助我 我正在尝试构建一个程序 从 csv 文件中读取大小未知的浮点数大数据块 我已经在 MATLAB 中编写了此代码 但想要编译和分发此代码 因此转向 C 我只是在学习并尝试阅读本文以开始 7 5 19892 4 23
  • iOS 11.x 系统颜色

    我读过很多关于如何自定义视图颜色的文章 但没有任何关于检索标准控件 如 iOS 11 x 或以前版本中的导航栏 状态栏和选项卡栏 的系统颜色的文章 UIColor 类有 3 种系统颜色 但它们几乎没有用 例如 调用 UINavigation
  • 如何从色彩校正增益获得色温

    我想找出相机拍摄的照片的色温 final CameraCaptureSession CaptureCallback previewSSession new CameraCaptureSession CaptureCallback Overr
  • 根据值更改 DataGrid 单元格颜色

    我有一个 WPF 数据网格 我想要根据值使用不同的单元格颜色 我的 xaml 上有以下代码 Style TargetType DataGridCell 但不是只选择一个单元格而是选择所有行 我缺少什么 如果您尝试设置DataGrid Cel
  • 如何减小 R Plot 中图例的大小,同时仍使其可读?

    我试图用 R 中的两个 y 轴绘制多年来的一些数据 但是 每当我尝试包含图例时 图例就会主导我的绘图 当我使用其他地方建议的解决方案时 例如keyword和 或使用cex论据 在另一篇文章中建议here https stackoverflo
  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati
  • MATLAB;具有 2+ 个/分割图例的饼图 R2017b

    我正在创建一个饼图 理想情况下希望图例水平显示在顶部和 或底部 然而 在几乎所有情况下 这是不可能的 因为图例超出了数字 因此 我理想情况下希望将图例分成两个 或更多 子图例并单独放置它们 我知道这不是 MATLAB 中的内置功能 我使用的
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • 代码终止后保持 matplotlib / pyplot 窗口打开

    我希望 python 绘制一个图 在不阻塞控制流的情况下显示它 并在代码退出后使图保持打开状态 这可能吗 这个以及相关的主题存在于许多其他线程中 见下文 但我无法让情节保持开放且非阻塞 例如 如果我使用pyplot ion before p
  • Spyder 内联绘图

    设置 Anaconda 2 0 0 Win 64 Spyder Anaconda 附带的 2 3 0rc 我配置图形 工具 gt 首选项 gt iPython 控制台 gt 图形 gt 图形后端 gt 内联 但无论我做什么 图形总是在单独的
  • Matlab 错误:()-索引必须出现在索引表达式的最后

    我有这段代码 想要在制表符分隔的 txt 文件中写入一个数组 fid fopen oo txt wt for x 1 length s fprintf fid s t n s x 1 end fclose fid 但我收到此错误 Error
  • OpenGL 使用着色器将 NV12 转换为 RGB24

    我尝试编写一个应用程序来在 OpenGL 中显示 YUV 图像 我使用此代码片段在 C 中成功将 Y UV 转换为 RGB source https blog csdn net subfate article details 4730514
  • 使用 matplotlib.animation 从 CSV 文件实时绘图 - 数据绘制到第一个输入错误

    我正在尝试绘制来自不断写入 CSV 文件的传感器的数据 虽然成功创建实时绘图 但每个新数据条目都会创建一条延伸到第一个数据条目的附加线 见下文 Python 3 4 脚本 import matplotlib pyplot as plt im
  • 当 MATLAB 变得非常非常忙时,如何中断它?

    我正在运行一个长时间的模拟MATLAB http en wikipedia org wiki MATLAB我意识到我需要停下来重新运行 然而 MATLAB 确实对这种计算很感兴趣 并且它停止了响应 如何在不终止 MATLAB 的情况下中断此
  • Python 中的 eig(a,b) 给出错误“需要 1 个位置参数,但给出了 2 个”

    根据https docs scipy org doc numpy 1 15 0 user numpy for matlab users html https docs scipy org doc numpy 1 15 0 user nump
  • 了解 Matlab 中的 DEL2 函数以便用 C++ 对其进行编码

    为了用 C 编写 DEL2 matlab 函数 我需要了解该算法 我已经成功地为不在边界或边缘上的矩阵元素编写了函数 我已经看过几个有关它的主题 并通过输入 edit del2 或 type del2 来阅读 MATLAB 代码 但我不明白
  • 更改 Common Lisp REPL 中文本的颜色

    我想控制 Common Lisp 中显示的文本的颜色 像这样的伪代码 print color red hello blue world 有什么办法可以做到这一点吗 我使用 SBCL 我的 repl 位于 emacs 内 谢谢 您可以使用AN
  • Python 中的颜色处理

    对于我的聚类 GUI 我目前对聚类使用随机颜色 因为我事先不知道最终会得到多少个聚类 在 Python 中 这看起来像 import random def randomColor return random random random ra

随机推荐

  • C# 嵌套字典

    我的语法有什么问题 我希望能够通过这个获得值 Genesis info Gen name public var info new Dictionary
  • 在 JTextArea 中设置插入符位置

    我有一个 JTextArea 我有一个函数 可以在调用某些组合时选择一定数量的文本 做得很好 问题是 当选择某些文本并按下 VK LEFT 时 我想将插入符号移动到选择开始 KeyListener实现正确 我用其他方式测试了它 问题是 当我
  • Kivy:编译为单个可执行文件

    在 kivy 论坛上没有得到回复 所以在这里尝试一下 当我将教程 pong 代码编译为一个可执行文件时 我仍必须将 pong kv 文件包含在同一文件夹中才能运行 否则 启动 exe 时会出现以下错误 GL EXT framebuffer
  • Jetpack compose 测试记录器

    我想要record我的 jetpack compose 项目中的 UI 测试 就像记录 Espresso 测试一样 我想按照以下步骤操作 开始录音 打开应用程序 单击对象 按钮等 完成录音 获取生成的 kotlin 代码 就像 Espres
  • 计算子组件的出现次数

    我有一个像这样的文件组件
  • 按组并行但在每个组内串行动态处理并发集合

    我遇到了一个可以轻松定义的问题 但我似乎无法消化 MSDN 以获得最佳解决方案 我已经有一段时间没有真正考虑 UI 响应能力之外的并行处理了 可以说 我有一个需要处理的并发任务集合 例如 它可能正在按类型 Consumer1 Consume
  • vim中如何在单词两侧重复添加文本?

    我在 Python 脚本中有一堆局部变量引用 我想从字典中提取它们 所以 我需要从本质上改变foo bar 和其他人进入env foo env bar 等等 我是否需要编写正则表达式并匹配要转换的每个变量名称 或者是否有更直接的方法 我可以
  • Android 选择并突出显示 edittext 中的文本

    我想做一个具有 EditText 或 TextView 的应用程序 可以在单击时选择并突出显示所选文本 我怎样才能做到这一点 我尝试在 EditText 上重写 onClick 方法 但似乎不起作用 到目前为止 这是我尝试过的 etx se
  • 进程名称在 Delphi XE 中不可见附加到进程对话框 - 无法调试

    设想 使用 Delphi XE 编写的 Delphi ISAPI dll 32 位 ISAPI dll 通过 IIS 7 5 在 Win 7 64 企业桌面上运行 机器 DLL 运行良好 通过使用 Run gt Attach to 在 De
  • “Microsoft.ACE.OLEDB.14.0”提供程序未在本地计算机上注册

    我构建了一个小型 WPF 应用程序 它将读取 XLS 或 XLSX 文件并在数据网格中显示内容 我通过使用 Microsoft Jet OLEDB 4 0 提供程序来工作 XLS 方面 我正在努力解决 XLSX 方面的问题 我运行的是 Wi
  • 冒号是 XML 标记名称中合法的第一个字符吗?

    根据W3C XML 推荐标准 https www w3 org TR 2008 REC xml 20081126 sec starttags 起始标记名称的定义为 STag lt Name S Attribute S gt where Na
  • 当未使用 EXISTS 嵌套 case 语句引入子查询时,选择列表中只能指定一个表达式

    我正在尝试创建一个查询来获取事件开放的小时数 下面是我的查询 我使用 case 语句是因为它需要考虑仅计算工作日 这是这个过程中的一个步骤 我的总体目标是实际获得那些天的工作时间 因此 例如 如果天数大于 1 则计算所有这些天并乘以 8 如
  • 如何解析任何日期格式

    我正在尝试做一些聪明的事情 以便解析任何国际格式的日期 在我的前端 我使用 jquery ui 作为日期选择器 每种语言都有其特定的日期格式 Fr 日 月 年 En 月 日 年 好的 但现在在 php 部分我必须使用相同的格式 Mysql
  • 将标题添加到列表框的滚动查看器并保留 virtualizingStackPanel (wp7)

    我想向列表框添加标题 我通过使用模板来完成此操作 问题是 如果我扩展列表框的模板 列表框的 virtualizingstackpanel 似乎不再按预期工作 它会在我滚动之前加载所有内容 我在 stackoverflow 中发现了一些相关问
  • 从 UIMenuController 获取选定的文本

    我试图在使用 UIMenuController 执行操作时获取选定的文本 如何取出选定的文本 我目前正在使用 UIWebView 但希望有一个通用的解决方案 如果有 您应该能够从以下位置获取数据UIPasteboard 应该是这样的 UIP
  • Android:LinearLayout - 未指定垂直或水平

    我正在学习一个教程 我注意到有一个线性布局没有指定垂直或水平 在另一个教程中我被告知这基本上是必需的 两者都没有意味着什么 是不是很糟糕 这是由另一个线性布局包围的 DID
  • iOS应用程序applicationWillEnterForeground并且卡住了一段时间

    我添加此功能以在应用程序进入前台时发布通知 void applicationWillEnterForeground UIApplication application NSNotificationCenter defaultCenter p
  • Linux命令获取以毫秒为单位的时间

    如何在 Bash shell 脚本中获取以毫秒为单位的时间 date T N 返回当前时间 纳秒 06 46 41 431857000 date T 6N 返回当前时间 纳秒四舍五入到前 6 位数字 即微秒 06 47 07 183172
  • Typescript:如何根据类型进行分支

    我有这样的事情 interface A a1 string a2 number a3 boolean interface B b1 number b2 boolean b3 string function foo
  • 根据第三个值更改 2D 绘图线的颜色

    我有一个看起来像这样的数据集 140400 70 7850 1 140401 70 7923 2 140402 70 7993 3 140403 70 8067 4 140404 70 8139 5 140405 70 8212 3 其中第