主要内容

swarmchart

群散点图

  • 群图

描述

例子

斯沃麦克哈特(Xy显示一个群图,它是一个散点图,图中的点偏移(抖动)X-维度。点形成不同的形状,每个形状的轮廓类似于小提琴图。群图帮助您可视化离散的图形X数据分布的数据y数据。在每个位置X,基于核密度估计对点进行抖动y

  • 要打印一组点,请指定Xy作为长度相等的向量。

  • 若要在同一组轴上绘制多组点,请至少指定以下选项之一:Xy作为矩阵。

例子

斯沃麦克哈特(Xy深圳指定标记大小。要绘制具有相同大小的所有标记,请指定深圳作为标量。要以不同的大小打印标记,请指定深圳作为向量或矩阵。

例子

斯沃麦克哈特(Xy深圳C指定标记颜色。您可以为所有标记指定一种颜色,或者您可以改变颜色。例如,您可以通过指定绘制所有红色圆圈C作为'红色的'

例子

斯沃麦克哈特(___mkr指定与默认标记(圆)不同的标记。指定mkr在前面任何语法中的所有参数之后。

例子

斯沃麦克哈特(___'填充'填满记号笔。指定'填充'选项,该选项位于前面任何语法中的所有参数之后。

例子

斯沃麦克哈特(___名称,价值使用一个或多个指定群体图表的其他属性名称,价值配对参数。在所有其他输入参数之后指定属性。有关属性列表,请参阅散射特性

例子

斯沃麦克哈特(斧头___在目标轴中显示swarm图表。在任何先前语法中的所有参数之前指定轴。

例子

s = swarmchart (___返回分散对象或数组分散对象。用S.创建图表的属性。有关属性列表,请参阅散射特性

例子

全部折叠

创建一个向量X坐标,并使用兰登函数生成正常分布的随机值y.然后创建一个群图Xy

x = [oon(1,500)2 * of(1,500)3 * of(1,500)];Y1 = 2 * RANDN(1,500);Y2 = 3 * RANDN(1,500)+ 5;Y3 = 5 * RANDN(1,500)+ 5;Y = [Y1 Y2 Y3];纵巾(x,y)

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

创建三套Xy坐标。使用兰登为生成随机值的函数y

x1 = x1(1,500);x2 = 2 *那些(1,500);x3 = 3 * x x3(1,500);Y1 = 2 * RANDN(1,500);Y2 = [Randn(1,250)Randn(1,250)+ 4];Y3 = 5 * RANDN(1,500)+ 5;

创建第一个数据集的群图表,并指定统一的标记大小5..然后打电话抓住将第二和第三个数据集与第一个数据集绘制在一起。调用hold释放轴的保持状态。

培养师(x1,y1,5)持有斯瓦姆哈特(x2,y2,5)斯瓦姆哈特(x3,y3,5)保持

图中包含一个轴。该轴包含3个散射类型的对象。

阅读BicycleCounts.csv数据设置为调用时间表TBL..此数据集在一段时间内包含自行车交通数据。显示前五排TBL.

tbl = readtable(fullfile(matlabroot,'例子'“matlab”“数据”“BicycleCounts.csv”)); tbl(1:5,:)
ans =.5×5表时间戳天总西行的往东的  ___________________ _____________ _____ _________ _________ 2015-06-24就是{“星期三”}13 9 4 2015-06-24 01:00:00{“星期三”}3 3 0 2015-06-24 02:00:00{“星期三”}1 1 0 2015-06-24 03:00:00{“星期三”}1 1 0 2015-06-24 04:00:00{“星期三”}1 1 0

创建一个向量X用每个观测的日名,另一个向量y表示观察到的自行车流量。然后创建一个群图Xy,并指定点标记('.'). 该图表显示了一周中每天自行车交通量的分布情况。

Daynames = [“星期天”“星期一”“星期二”“星期三”“星期四”“星期五”“星期六”];x =分类(TBL.Day,Daynames);y = tbl.total;纵巾(x,y,'。');

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

阅读BicycleCounts.csv数据设置为调用时间表TBL..创建一个向量X对于每个观察的日常名称,另一个向量y观察到自行车的交通情况,还有第三个方向C一天中的每一个小时。

然后创建一个群图Xy,并将标记大小指定为20.指定标记的颜色为矢量C.矢量索引中的值到图形的ColorMap中。因此,颜色根据每个数据点的小时改变。使用'填充'选择填充颜色标记,而不是显示他们为空心圆圈。

tbl = readtable(fullfile(matlabroot,'例子'“matlab”“数据”“BicycleCounts.csv”));Daynames = [“星期天”“星期一”“星期二”“星期三”“星期四”“星期五”“星期六”];x =分类(TBL.Day,Daynames);y = tbl.total;C =小时(TBL.TIMESTAMP);纵巾(x,y,20,c,'填充');

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

阅读BicycleCounts.csv数据设置为调用时间表TBL..创建一个向量X对于每个观察的日常名称,另一个向量y观察到自行车的交通情况,还有第三个方向C一天中的每一个小时。然后创建一个群图Xy,并将标记大小指定为5.,并将标记的颜色作为向量C.打电话给swarmchart函数返回参数S.,因此您可以在创建它后修改图表。

tbl = readtable(fullfile(matlabroot,'例子'“matlab”“数据”“BicycleCounts.csv”));Daynames = [“星期天”“星期一”“星期二”“星期三”“星期四”“星期五”“星期六”];x=分类(待定日期,日名称);y=待定总计;c=小时(待定时间戳);s=斯沃姆哈特(x,y,5,c);

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

改变每个集群的形状X位置,因此点均匀和随机分布,间距仅限于0.5数据单元。

s.xjitter =“兰德”;s.XJitterWidth = 0.5;

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

创造一副Xy坐标。使用兰登为生成随机值的函数y.然后使用填充标记创建一个群体图表,这些标记在其脸上和边缘上透明50%。

x1 = x1(1,500);x2 = 2 *那些(1,500);x = [x1 x2];Y1 = 2 * RANDN(1,500);Y2 = [Randn(1,250)Randn(1,250)+ 4];Y = [Y1 Y2];纵巾(x,y,'填充''markerfacealpha', 0.5,“MarkerEdgeAlpha”, 0.5)

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

阅读BicycleCounts.csv数据设置为调用时间表TBL..此数据集在一段时间内包含自行车交通数据。显示前五排TBL.

tbl = readtable(fullfile(matlabroot,'例子'“matlab”“数据”“BicycleCounts.csv”)); tbl(1:5,:)
ans =.5×5表时间戳天总西行的往东的  ___________________ _____________ _____ _________ _________ 2015-06-24就是{“星期三”}13 9 4 2015-06-24 01:00:00{“星期三”}3 3 0 2015-06-24 02:00:00{“星期三”}1 1 0 2015-06-24 03:00:00{“星期三”}1 1 0 2015-06-24 04:00:00{“星期三”}1 1 0

定义X作为表中日常名称的分类数组。定义酵母yWest作为包含东行和西行自行车交通数量的载体。

Daynames = [“星期天”“星期一”“星期二”“星期三”“星期四”“星期五”“星期六”];x=分类(待定日期,日期名称);酵母=待定东行;yWest=待定西行;

控件中创建一个平铺图表布局'流动'瓷砖布置,使轴填充布局中的可用空间。打电话给nextdile.函数创建轴对象并将其返回为ax1.然后通过递归生成东行数据的群图ax1swarmchart功能。

tiledlayout('流动') ax1 = nexttile;y = tbl.Eastbound;swarmchart (ax₁,x, y,'。');

图中包含一个坐标轴。坐标轴包含一个散点类型的对象。

重复上述过程,为西行交通创建第二个轴对象和群图。

ax2 = nexttile;y = tbl.Westbound;s = swarmchart (ax2, x, y,'。');

图中包含2个轴。轴1包含散射类型的对象。轴2包含散射类型的对象。

输入参数

全部折叠

X- 指定为标量,向量或矩阵。尺寸和形状X取决于您的数据的形状。此表描述了最常见的情况。

情节的类型 如何指定坐标
单点

指定Xy标量。例如:

斯沃姆哈特(1,1)

一组点

指定Xy作为相同长度的行或列向量的任意组合。例如:

x =兰迪(3100 1);y = randn (1100);纵巾(x,y)

不同颜色的多组点

如果所有集合共享相同的X-或y-坐标,将共享坐标指定为向量,将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度匹配。例如:

x =兰迪(1100);Y = [randn(100,1) randn(100,1)+5];纵巾(x,y,100)
如果矩阵为方形,swarmchart为矩阵中的每列绘制一组单独的点。

或者,指定Xy作为相同大小的矩阵。在这种情况下,swarmchart绘制每一列y对应的列X.例如:

x = randi(2,100,2);Y = [randn(100,1) randn(100,1)+5];纵巾(x,y,100)

数据类型:单一的|双重的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64|分类

y- 指定为标量,向量或矩阵。尺寸和形状y取决于您的数据的形状。此表描述了最常见的情况。

情节的类型 如何指定坐标
单点

指定Xy标量。例如:

斯沃姆哈特(1,1)

一组点

指定Xy作为相同长度的行或列向量的任意组合。例如:

x =兰迪(3100 1);y = randn (1100);纵巾(x,y)

不同颜色的多组点

如果所有集合共享相同的X-或y-坐标,将共享坐标指定为向量,将其他坐标指定为矩阵。向量的长度必须与矩阵的一个维度匹配。例如:

x =兰迪(1100);Y = [randn(100,1) randn(100,1)+5];纵巾(x,y,100)
如果矩阵为方形,swarmchart为矩阵中的每列绘制一组单独的点。

或者,指定Xy作为相同大小的矩阵。在这种情况下,swarmchart绘制每一列y对应的列X.例如:

x = randi(2,100,2);Y = [randn(100,1) randn(100,1)+5];纵巾(x,y,100)

数据类型:单一的|双重的|int8|int16|INT32.|int64|uint8|uint16|uint32|uint64|分类|datetime|期间

标记大小,指定为数字标量,矢量,矩阵或空数组([])。大小控制位平方中的每个标记的区域。空数组指定默认大小为36分。您指定大小的方式取决于您指定的方式Xy以及如何看待情节的样子。此表描述了最常见的情况。

所需的标记大小 Xy 深圳 例子

所有点的大小相同

所描述的向量或矩阵的任何有效组合Xy

标量子

指定X作为向量,y作为矩阵,和深圳作为标量。

x=兰迪(2,1100);y=randn(100,1);斯沃姆哈特(x,y,100)

每个点的大小不同

相同长度的载体

  • 一种长度与向量相同的向量Xy

  • 的长度匹配的至少一维矩阵Xy。指定矩阵对于在每个(x,y)位置显示不同大小的多个标记非常有用。

指定Xy,深圳作为向量。

x=randi(2,1100);y=randn(100,1);sz=randi([70 2000],100,1);swarmchart(x,y,sz)

指定Xy向量和深圳作为矩阵。

x =兰迪(1100);y = randn (100 1);Sz = randi([70 2000],100,2);深圳swarmchart (x, y)

每个点的大小不同

至少一个Xy是绘制多个数据集的矩阵

  • 元素个数与每个数据集中的点个数相同的向量。

  • 一种矩阵,其大小与Xy矩阵。

指定X作为向量,y作为矩阵,和深圳作为向量。

x =兰迪(1100);Y = [randn(100,1) randn(100,1)+5];Sz = randi([70 2000],100,1);深圳swarmchart (x, y)

指定X作为向量,y作为矩阵,和深圳作为矩阵相同的尺寸y

x =兰迪(1100);Y = [randn(100,1) randn(100,1)+5];Sz = randi([70 2000],100,2);深圳swarmchart (x, y)

标记颜色,指定为颜色名称,RGB三重态,RGB三元组矩阵,或ColorMap指数的向量。

  • 颜色名称 - 诸如'红色的'或者是一个短名字,如'r'

  • RGB三元组——一个由三个元素组成的行向量,其元素指定颜色的红、绿、蓝分量的强度。强度必须在这个范围内[0,1];例如,(0.4 0.6 0.7).RGB三联体对于创建自定义颜色很有用。

  • RGB三元组矩阵-一个三列矩阵,其中每行为RGB三元组。

  • 颜色贴图索引向量-与颜色相同长度的数值向量Xy向量。

指定颜色的方式取决于所需的颜色方案以及打印的是一组坐标还是多组坐标。此表描述了最常见的情况。

配色方案 如何指定颜色 例子

对所有的点使用一种颜色。

从下表中指定颜色名称或短名称,或指定一个RGB三重态。

绘制一组点,并指定颜色为'红色的'

x =兰迪(1100);y = randn (100 1);C ='红色的';纵巾(x,y,[],c)

绘制两组点,并使用RGB三重态指定为红色的颜色。

x=randi(2,1100);y=randn(100,1);c=[0.6 0.9];swarmchart(x,y,[],c)

使用彩色地图给每个点分配不同的颜色。

指定数字的行或列向量。这些数字索引到当前颜色映射数组中。最小的值映射到colormap中的第一行,最大的值映射到最后一行。中间值线性地映射到中间行。

如果您的绘图有三个点,请指定列向量以确保将值解释为Colormap Incices。

只有在何时使用此方法Xy,深圳都是所有的载体。

创建一个向量C这指定了100个Colormap指数。用来自当前Colormap的颜色绘制100点。然后,将Colormap更改为冬天

x =兰迪(1100);y = randn (100 1);c = 1:10 0;swarmchart (x, y, [], c) colormap (gca),'冬天'

为每个点创建自定义颜色。

指定RGB三元组的m×3矩阵,其中m是绘图中的点数。

只有在何时使用此方法Xy,深圳都是所有的载体。

创建一个矩阵C指定100个随机RGB三联体。然后用这些颜色创建一个由100个点组成的群图。

x =兰迪(1100);y = randn (100 1);c = rand(100,3);纵巾(x,y,[],c)

为每个数据集创建不同的颜色。

指定RGB三元组的n×3矩阵,其中n是数据集的数量。

只有在至少一个中只能使用此方法Xy深圳是一个矩阵。

创建一个矩阵C包含两个RGB三元组。然后使用这些颜色绘制两个数据集。

x = randi(2,100,2);Y = [randn(100,1) randn(100,1)+5];C = [1 0 0;0 0 1];纵巾(x,y,[],c)

常见颜色的颜色名称和RGB三联体

颜色名称 简称 RGB三重态 十六进制颜色代码 外观
'红色的' 'r' (1 0 0) '#ff0000'

“绿色” “g” [0 1 0] '#00ff00'

'蓝色' “b” [0 0 1] '#0000ff'

“青色” “c” [0 1 1] “#00FFFF”

'品红' 'M' (1 0 1) “#FF00FF”

“黄色” “y” [1 1 0] '#ffff00'

“黑色” 'K' [0 0 0] '#000000'

'白色的' 'W' [1 1] '#ffffff'

以下是RGB三元组和默认颜色MATLAB的十六进制颜色代码®用于多种类型的绘图。

RGB三重态 十六进制颜色代码 外观
[0 0.4470 0.7410] '#0072bd'

[0.8500 0.3250 0.0980] '#d95319'

(0.9290 0.6940 0.1250) “# EDB120”

[0.4940 0.1840 0.5560] '#7e2f8e'

(0.4660 0.6740 0.1880) '#77ac30'

[0.3010 0.7450 0.9330] '#4dbeee'

(0.6350 0.0780 0.1840) “# A2142F”

标记类型,指定为此表中列出的值之一。

标记 描述
'o' 圆圈
'+' 加号
'*' 星号
'。'
'X'
“_” 水平线
“|” 垂线
' 广场
“d” 钻石
“^” Upward-pointing三角形
'v' 向下三角形
“>” 右三角形
“<” 左指向三角形
'P' 五角星
“h” 六芒星

选项以填充标记的内部,指定为'填充'.使用这个选项的标记有一个面,例如,'o'“广场”.没有面部的标记并包含边缘根本没有呈现('+''*''。','X')。

'填充'选项设置填充颜色财产的财产分散对象'平坦的'markeredgecolor.财产'没有任何'.在这种情况下,Matlab绘制标记面,但不是边缘。

目标轴,指定为对象,一个北极星对象,或者GeographicAxes对象。如果你没有指定坐标轴,MATLAB绘制到当前坐标轴,或者它创建对象(如果不存在)。

名称-值对的观点

指定可选的逗号分离对名称,价值论点。名称是参数名称和价值为对应值。名称必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:纵巾(Randi(4,500,1),Randn(500,1),'MarkerfaceColor','Red')指定红色填充标记。

笔记

此处列出的属性仅是一个子集。有关完整列表,请参阅散射特性

沿线的抖动类型(点间距)X-dimension,指定为以下值之一:

  • '没有任何'-不要抖动点。

  • “密度”-使用核密度估计抖动点y对于2-D图表。如果在三维图表中以两个维指定此选项,则该点基于第三维中的内核密度估计值是抖动的。例如,设置xjitter.YJitter“密度”使用内核密度估计Z.

  • “兰德”-对点进行均匀随机抖动。

  • 'randn'- 抖动点随机分布。

沿着的最大抖动量(点之间的偏移)X-dimension,指定为数据单元中的非负标量值。

例如,要将抖动宽度设置为相邻点之间最短距离的90%,请取出唯一值之间的最小距离X和缩放0.9

XJitterWidth=0.9*min(diff(unique(x));

算法

群图中的点使用均匀随机值进行抖动,均匀随机值通过样本的高斯核密度估计进行加权y以及每个点的相对数量X的位置。此行为对应于默认值“密度”设定的xjitter.财产分散当你打电话时对象swarmchart功能。

每个点的最大分布X位置是相邻位置之间最小距离的90%X默认值:

分散= 0.9 * min(差异(唯一(x)));

您可以通过设置XjitterWidth.财产分散对象。

也可以看看

职能

性质

在R2020B中介绍