Matlab 散点图(Scatter)和颜色图(Colormap) |
您所在的位置:网站首页 › 什么是电商数据分组 › Matlab 散点图(Scatter)和颜色图(Colormap) |
目录
一、什么是散点图?二、什么数据需要用散点图来呈现?三、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 Scatter 所有的属性设置9 (后续根据经验再补充常用属性设置) 如何设置图形属性 内容类属性 格式类属性 六、问题解决:加上色序设置后 scatter 不出图的问题
下面是 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');
散点图-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 |