Matlab 散点图(Scatter)和颜色图(Colormap)

您所在的位置:网站首页 什么是电商数据分组 Matlab 散点图(Scatter)和颜色图(Colormap)

Matlab 散点图(Scatter)和颜色图(Colormap)

2023-07-09 09:19| 来源: 网络整理| 查看: 265

目录 一、什么是散点图?二、什么数据需要用散点图来呈现?三、matlab 中的颜色如何表示和调用?四、颜色和透明度在散点图中的灵活应用二维散点图三维散点图数据分组! 五、Scatter 的常见属性如何设置图形属性内容类属性格式类属性 六、问题解决:加上色序设置后 scatter 不出图的问题勉强可用的解决方案

一、什么是散点图?

最初在学习数学和物理时,就已经知道拿到数据要「描点画图」,在密密麻麻的格子纸上标记每一个数据,然后才是用折线或平滑曲线连接。 简单对应在 matlab 的画图函数中,scatter()1 2用来描点,plot() 用来连线。 当然也可以对 plot() plot3() 补充 '.' 'o' 参数来将绘图指定为不带线的标记3,也有人用 plot 规避了 scatter 中的 legend 问题(我的matlab没有遇到类似问题,可能是版本原因4)。5 但 scatter() 对点图的处理的灵活性上还是要远远大于 plot() 的(后续可能会比较一下两种方法)。

二、什么数据需要用散点图来呈现?

最初接触到 matlab 画图大多是从 plot() 函数开始的,但其实 scatter() 得到的散点图才是最原始的数据。如果数据之间不存在先后的联系(比如物理实验中小球从轨道划出后在纸上的落点位置,以及其他统计结果)或者本身数据还需要剔除一些明显错误的点,盲目用线(无论是折线还是平滑曲线)连起来是不可取的,这时就需要用到散点图了。 (除了基本操作,散点图的其他用途了解还有限)

三、matlab 中的颜色如何表示和调用?

MATLAB 中的画图的颜色是依据 colormap6 来显示的,scatter() 等函数中可以用一组 vector 直接指定色序。 关于什么是「色序 ColorOrder」以及色序的指定问题,可以参考: 为何绘图线条有不同颜色?

统一指定同一坐标轴下多个数据集的颜色,可以参考: 控制绘图函数如何选择颜色和线型 对于早期 matlab 版本,颜色和线型的选择可以通过设置(或移除)默认参数来实现: 用于绘图的线型 - LineStyleOrder

PS. 好想拥有好看的配色啊,专属 colormap 什么的

四、颜色和透明度在散点图中的灵活应用

散点图可以用颜色标记数值的大小7。为了更清晰展示结果,颜色和数值的对应可以在 colorbar 中标示,也可以用 text 标记具体点的数值8。

二维散点图 三维散点图 数据分组!

快速分析统计到的数据:Create Scatter Plots Using Grouped Data matlab 实例:四行代码得到的一张图,见上文链接 能快速画出统计图,得益于已经记录完整的数据。把相关的帮助链接贴在下面,按需阅读: 数据类型 Grouping Variables 定义 分类数组 categorical 定性数据数组,其值来自于离散、非数值数据的有限集合 表 table 数据预处理 数据的预处理 函数 gplotmatrix Matrix of scatter plots by group

五、Scatter 的常见属性

Scatter 所有的属性设置9

(后续根据经验再补充常用属性设置)

如何设置图形属性 内容类属性 格式类属性 六、问题解决:加上色序设置后 scatter 不出图的问题

指定色序时的结果 警告内容

不指定色序时的结果 画图程序来源8

勉强可用的解决方案

下面是 scatter(x,y,sz,c) 和 scatter3(x,y,z,sz,c) 中对输入变量 c 的描述。最后一种方法存在问题,可以转而使用第三种来实现类似的(从 colormap 设置颜色的)操作。

Marker color, specified as a color name, RGB triplet, matrix of RGB triplets, or a vector of colormap indices. Color name — A color name such as “red”, or a short name such as “r”. RGB triplet — A three-element row vector whose elements specify the intensities of the red, green, and blue components of the color. The intensities must be in the range [0,1]; for example, [0.4 0.6 0.7]. RGB triplets are useful for creating custom colors. Matrix of RGB triplets — A three-column matrix in which each row is an RGB triplet. Vector of colormap indices — A vector of numeric values that is the same length as the x and y vectors.

clc,clear,close all % 生成数据 n=[1:50]; xn=n./(n+1); % 用 vector 的方式指定 Marker color % c = linspace(1,10,length(n)); % 指定色序画图失败 % 用 RGB triplet 的方式指定 Marker color % 选择 colormap % co = [0 0 1; % 0 0.5 0; % 1 0 0; % 0 0.75 0.75; % 0.75 0 0.75; % 0.75 0.75 0; % 0.25 0.25 0.25]; % 自己写一个 colormap co = colormap("cool"); % 或读取 matlab 自带 colormap % 对 colormap 进行插值(相当于手动操作色序选择) [Xq,Yq] = meshgrid(1:size(co,2),linspace(1,size(co,1),length(n))); c = interp2(1:size(co,2),1:size(co,1),co,Xq,Yq); % 行数和数据长度相同 % 查看对 colormap 的插值结果 % 这里相当于从 256 组 RGB triplet 中抽取了 50 组 figure subplot(121);mesh(co);title('原始 colormap') xticklabels({'R','G','B'}) subplot(122);mesh(c); title('插值后') xticklabels({'R','G','B'}) % 画图 figure scatter(n,xn,[],c,'filled');

可以显示渐变色彩的散点图了 对 colormap 的插值结果示意

散点图-MATLAB ↩︎

三维散点图-MATLAB ↩︎

三维点或线图 ↩︎

https://www.ilovematlab.cn/thread-526221-1-1.html?_dsign=6e07e44b ↩︎

https://blog.csdn.net/mayubins/article/details/124738000 ↩︎

查看并设置当前颜色图-MATLAB ↩︎

https://blog.csdn.net/justKidrauhl/article/details/82492986 ↩︎

https://blog.csdn.net/KEEPace_6/article/details/125373466 ↩︎ ↩︎

散点图的外观和行为-MATLAB ↩︎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3