stackedplot
具有公共 x 轴的几个变量的堆叠图
语法
说明
表和时间表数据
stackedplot(
在堆叠图中绘制表或时间表的变量,最多 25 个变量。该函数在垂直堆叠的单独 y 轴中绘制变量。这些变量共享一个公共 x 轴。tbl
)
如果
tbl
是表,则stackedplot
绘制变量对行号的图。如果
tbl
是时间表,则stackedplot
绘制变量对行时间的图。如果
tbl
是有附加事件表的时间表,则stackedplot
还将事件绘制为垂直线或着色区域。 (自 R2023b 起)
stackedplot
函数绘制 tbl
的所有数值、逻辑、分类、日期时间和持续时间变量,并忽略具有任何其他数据类型的表变量。
向量和矩阵数据
stackedplot(
绘制 Y
)Y
的列对其行号的图。x 轴的刻度范围是从 1 到 Y
的行数。
其他选项
stackedplot(___,
设置线型、标记符号和颜色。您可以将此语法与前面任何语法中的输入参量结合使用。LineSpec
)
stackedplot(___,"XVariable",
指定为堆叠图提供 x 值的表变量。xvar
)
仅当输入是表时,才支持此语法。
stackedplot(___,"CombineMatchingNames",false)
在不同 y 轴上绘制来自不同输入但名称相同的变量。当您未指定 CombineMatchingNames
名称-值参量时,默认行为是在同一 y 轴上绘制这些变量。
仅当输入是多个表或多个时间表时,才支持此语法。
stackedplot(___,
使用一个或多个名称-值参量设置堆叠图的属性。有关属性列表,请参阅 StackedLineChart 属性。名称-值参量设置应用于堆叠图中的所有绘图。Name,Value
)
stackedplot(
在 parent
,___)parent
指定的图窗、面板或选项卡中创建堆叠图。选项 parent
可以位于上述语法中的任何输入参量组合之前。
s = stackedplot(___)
返回 StackedLineChart 属性 对象。创建堆叠图后,您可以使用 s
来更改其属性。输出 s
也是一个独立可视化图,它独立于其他图。
示例
绘制时间表变量
将电子表格中的数据读取到一个时间表中。(将它包含的任何文本数据读入字符串数组中。)包含日期时间的第一个变量 OutageTime
提供时间表的行时间。显示前五行。
tbl = readtimetable("outages.csv","TextType","string"); head(tbl,5)
OutageTime Region Loss Customers RestorationTime Cause ____________________ ___________ ______ __________ ____________________ _________________ 01-Feb-2002 12:18:00 "SouthWest" 458.98 1.8202e+06 07-Feb-2002 16:50:00 "winter storm" 23-Jan-2003 00:49:00 "SouthEast" 530.14 2.1204e+05 NaT "winter storm" 07-Feb-2003 21:15:00 "SouthEast" 289.4 1.4294e+05 17-Feb-2003 08:14:00 "winter storm" 06-Apr-2004 05:44:00 "West" 434.81 3.4037e+05 06-Apr-2004 06:10:00 "equipment fault" 16-Mar-2002 06:18:00 "MidWest" 186.44 2.1275e+05 18-Mar-2002 23:23:00 "severe storm"
对时间表进行排序,使其行时间按顺序排列。时间表的行时间不需要按顺序排列。但是,如果将行时间用作绘图的 x 轴,则最好确保时间表按行时间排序。
tbl = sortrows(tbl); head(tbl,5)
OutageTime Region Loss Customers RestorationTime Cause ____________________ ___________ ______ __________ ____________________ ______________ 01-Feb-2002 12:18:00 "SouthWest" 458.98 1.8202e+06 07-Feb-2002 16:50:00 "winter storm" 05-Mar-2002 17:53:00 "MidWest" 96.563 2.8666e+05 10-Mar-2002 14:41:00 "wind" 16-Mar-2002 06:18:00 "MidWest" 186.44 2.1275e+05 18-Mar-2002 23:23:00 "severe storm" 26-Mar-2002 01:59:00 "MidWest" 388.04 5.6422e+05 28-Mar-2002 19:55:00 "winter storm" 20-Apr-2002 16:46:00 "MidWest" 23141 NaN NaT "unknown"
基于 tbl
创建数据的一个堆叠图。行时间 OutageTime
提供沿 x 轴的值。stackedplot
函数绘制来自 Loss
、Customers
和 RestorationTime
变量的值,其中每个变量沿它自己的 y 轴绘制。但是,该绘图不包含 Region
和 Cause
变量,因为它们包含不能绘制的数据。
stackedplot(tbl)
绘制事件
自 R2023b 开始提供
基于附加到时间表的事件表绘制事件。结果是时间表变量的堆叠图,其中事件绘制为垂直线或着色区域。有关事件表的详细信息,请参阅 eventtable
。
首先,从示例 MAT 文件导入时间表和事件表。显示时间表,它列出了 2022 年 11 月连续两周的天气情况。
load weatherEvents.mat
weatherData
weatherData=15×2 timetable
Time Temperature Humidity
___________ ___________ ________
01-Nov-2022 36 45
02-Nov-2022 31 76
03-Nov-2022 37 43
04-Nov-2022 36 46
05-Nov-2022 38 72
06-Nov-2022 32 54
07-Nov-2022 35 50
08-Nov-2022 34 45
09-Nov-2022 32 72
10-Nov-2022 30 58
11-Nov-2022 39 54
12-Nov-2022 34 58
13-Nov-2022 31 73
14-Nov-2022 40 78
15-Nov-2022 34 66
接下来,显示事件表。它列出了 2022 年 11 月发生的暴风雪及其持续时间。
weatherEvents
weatherEvents = 4x3 eventtable
Event Labels Variable: EventType
Event Lengths Variable: EventLength
Time EventType EventLength Precipitation (mm)
___________ _________ ___________ __________________
03-Nov-2022 Hail 1.2 hr 12.7
05-Nov-2022 Rain 36 hr 114.3
10-Nov-2022 Snow 18 hr 25.4
14-Nov-2022 Rain 20 hr 177.8
然后,将事件表附加到时间表。事件表成为时间表的一个属性。当您显示时间表时,您还可以看到事件标签。
weatherData.Properties.Events = weatherEvents
weatherData=15×2 timetable
Time Temperature Humidity
___________ ___________ ________
01-Nov-2022 36 45
02-Nov-2022 31 76
Hail 03-Nov-2022 37 43
04-Nov-2022 36 46
Rain 05-Nov-2022 38 72
Rain 06-Nov-2022 32 54
07-Nov-2022 35 50
08-Nov-2022 34 45
09-Nov-2022 32 72
Snow 10-Nov-2022 30 58
11-Nov-2022 39 54
12-Nov-2022 34 58
13-Nov-2022 31 73
Rain 14-Nov-2022 40 78
15-Nov-2022 34 66
创建一个堆叠图。着色区域表示所附事件表中列出的暴风雪发生的时间。
stackedplot(weatherData)
要隐藏事件,请使用 EventsVisible
名称-值参量。
stackedplot(weatherData,EventsVisible="off")
绘制多个时间表
从示例 MAT 文件 indoors
和 outdoors
中加载两个时间表。然后显示每个时间表的前三行。
load indoors.mat load outdoors.mat head(indoors,3)
Time Humidity AirQuality ___________________ ________ __________ 2015-11-15 00:00:24 36 80 2015-11-15 01:13:35 36 80 2015-11-15 02:26:47 37 79
head(outdoors,3)
Time Humidity TemperatureF PressureHg ___________________ ________ ____________ __________ 2015-11-15 00:00:24 49 51.3 29.61 2015-11-15 01:30:24 48.9 51.5 29.61 2015-11-15 03:00:24 48.9 51.5 29.61
创建 indoors
和 outdoors
中数据的堆叠图。从多个表或时间表创建一个堆叠图时:
图例显示与每个表或时间表相关联的颜色。
名称相同但来自不同表或时间表的变量绘制在同一 y 轴上。例如,以下对
stackedplot
的调用在同一 y 轴上绘制来自indoors
和outdoors
的Humidity
变量。
stackedplot(indoors,outdoors)
合并和分离具有匹配名称的变量
从示例 MAT 文件 indoors
和 outdoors
中加载两个时间表。两个时间表都有一个名为 Humidity
的变量。基于这两个 Humidity
变量生成一个堆叠图。图例中的颜色显示变量与时间表之间的对应关系。
load indoors.mat load outdoors.mat head(indoors,5)
Time Humidity AirQuality ___________________ ________ __________ 2015-11-15 00:00:24 36 80 2015-11-15 01:13:35 36 80 2015-11-15 02:26:47 37 79 2015-11-15 03:39:59 37 82 2015-11-15 04:53:11 36 80
head(outdoors,5)
Time Humidity TemperatureF PressureHg ___________________ ________ ____________ __________ 2015-11-15 00:00:24 49 51.3 29.61 2015-11-15 01:30:24 48.9 51.5 29.61 2015-11-15 03:00:24 48.9 51.5 29.61 2015-11-15 04:30:24 48.8 51.5 29.61 2015-11-15 06:00:24 48.7 51.5 29.6
stackedplot(indoors,outdoors,"Humidity")
语法 stackedplot(indoors,outdoors,"Humidity")
等效于语法 stackedplot(indoors,outdoors,"Humidity","CombineMatchingNames",true)
。默认情况下,名称相同但来自不同输入的变量绘制在同一 y 轴上。
要在不同 y 轴上绘制两个 Humidity
变量,请指定 "CombineMatchingNames",false
名称-值参量。
stackedplot(indoors,outdoors,"Humidity","CombineMatchingNames",false)
指定变量
根据患者数据创建一个表。显示前三行。
tbl = readtable("patients.xls","TextType","string"); head(tbl,3)
LastName Gender Age Location Height Weight Smoker Systolic Diastolic SelfAssessedHealthStatus __________ ________ ___ ___________________________ ______ ______ ______ ________ _________ ________________________ "Smith" "Male" 38 "County General Hospital" 71 176 true 124 93 "Excellent" "Johnson" "Male" 43 "VA Hospital" 69 163 false 109 77 "Fair" "Williams" "Female" 38 "St. Mary's Medical Center" 64 131 false 125 83 "Good"
仅绘制表中的四个变量。
stackedplot(tbl,["Height","Weight","Systolic","Diastolic"])
重新排列变量
从文件中读取一个时间表,并显示其前三行。
tbl = readtimetable("outages.csv","TextType","string"); tbl = sortrows(tbl); head(tbl,3)
OutageTime Region Loss Customers RestorationTime Cause ____________________ ___________ ______ __________ ____________________ ______________ 01-Feb-2002 12:18:00 "SouthWest" 458.98 1.8202e+06 07-Feb-2002 16:50:00 "winter storm" 05-Mar-2002 17:53:00 "MidWest" 96.563 2.8666e+05 10-Mar-2002 14:41:00 "wind" 16-Mar-2002 06:18:00 "MidWest" 186.44 2.1275e+05 18-Mar-2002 23:23:00 "severe storm"
通过以与表中的顺序不同的顺序指定变量,对变量重新排序。例如,RestorationTime
是时间表中可以绘制的最后一个变量。默认情况下,stackedplot
将其放置在绘图的底部。但是,您可以对变量重新排序以将 RestorationTime
放在顶部。
stackedplot(tbl,["RestorationTime","Loss","Customers"])
还有其他方法可以对变量进行重新排序。
按在表中的数字顺序指定它们:
stackedplot(tbl,[4 2 3]);
返回一个
StackedLineChart
对象,并对其DisplayVariables
属性中的值重新排序:
s = stackedplot(tbl); s.DisplayVariables = ["RestorationTime","Loss","Customers"]
使用一个 Y 轴绘制多个变量
使用 Weight
、Systolic
和 Diastolic
变量基于患者数据的子集创建一个表。
load patients
tbl = table(Weight,Systolic,Diastolic);
head(tbl,3)
Weight Systolic Diastolic ______ ________ _________ 176 124 93 163 109 77 131 125 83
创建一个堆叠图,使用相同的 y 轴绘制 Systolic
和 Diastolic
,使用它自己的 y 轴绘制 Weight
。首先,将 vars
指定为一个包含两个元素的元胞数组。第一个元素将 "Systolic"
和 "Diastolic"
一起组合在一个字符串数组中。它们一起绘制在同一个 y 轴上。元胞数组的第二个元素是 "Weight"
。它绘制在它自己的 y 轴上。
vars = {["Systolic","Diastolic"],"Weight"}
vars=1×2 cell array
{["Systolic" "Diastolic"]} {["Weight"]}
stackedplot(tbl,vars)
绘制矩阵的列
创建一个数值矩阵和一个数值向量。
X = [0:4:20]
X = 1×6
0 4 8 12 16 20
Y = randi(100,6,3)
Y = 6×3
82 28 96
91 55 49
13 96 81
92 97 15
64 16 43
10 98 92
使用 X
和 Y
创建一个堆叠图。
stackedplot(X,Y)
使用名称-值参量指定标题和标签
加载具有一组天气测量值的时间表。显示其前三行。
load outdoors
outdoors(1:3,:)
ans=3×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:24 49 51.3 29.61
2015-11-15 01:30:24 48.9 51.5 29.61
2015-11-15 03:00:24 48.9 51.5 29.61
创建一个堆叠图。使用名称-值参量指定 y 轴的标题和标签。您可以使用名称-值参量来更改任何属性的默认值。(另请注意,您可以使用 char(176)
指定度符号。)
degreeSymbol = char(176); newYlabels = ["RH (%)","T (" + degreeSymbol + "F)","P (in Hg)"]; stackedplot(outdoors,"Title","Weather Data","DisplayLabels",newYlabels)
为多个时间表指定图例
从示例 MAT 文件 indoors
和 outdoors
中加载两个时间表。
load indoors.mat load outdoors.mat head(indoors,3)
Time Humidity AirQuality ___________________ ________ __________ 2015-11-15 00:00:24 36 80 2015-11-15 01:13:35 36 80 2015-11-15 02:26:47 37 79
head(outdoors,3)
Time Humidity TemperatureF PressureHg ___________________ ________ ____________ __________ 2015-11-15 00:00:24 49 51.3 29.61 2015-11-15 01:30:24 48.9 51.5 29.61 2015-11-15 03:00:24 48.9 51.5 29.61
基于多个表或时间表创建一个堆叠图时,该堆叠图会包含图例。默认情况下,图例使用输入的名称作为标签。但是,您可以在图例中指定标签和标签方向。
stackedplot(indoors,outdoors,"LegendLabels",["Inside Readings","Outside Readings"],... "LegendOrientation","vertical")
您还可以隐藏图例。
stackedplot(indoors,outdoors,"LegendVisible","off")
将单个绘图改为散点图和阶梯图
stackedplot
函数返回 StackedLineChart
对象。您可以使用它为所有绘图设置相同的属性值,或为单个绘图设置不同属性值。在此示例中,首先更改堆叠图中所有绘图的线宽。然后,使用单个绘图的 PlotType
属性,以便堆叠图具有线图、散点图和阶梯图。
加载具有一组天气测量值的时间表。
load outdoors
outdoors(1:3,:)
ans=3×3 timetable
Time Humidity TemperatureF PressureHg
___________________ ________ ____________ __________
2015-11-15 00:00:24 49 51.3 29.61
2015-11-15 01:30:24 48.9 51.5 29.61
2015-11-15 03:00:24 48.9 51.5 29.61
创建一个堆叠图并返回 StackedLineChart
对象。
s = stackedplot(outdoors)
s = StackedLineChart with properties: SourceTable: [51x3 timetable] DisplayVariables: {'Humidity' 'TemperatureF' 'PressureHg'} Color: [0 0.4470 0.7410] LineStyle: '-' LineWidth: 0.5000 Marker: 'none' MarkerSize: 6 EventsVisible: on Use GET to show all properties
该对象提供对应用于所有绘图的许多属性的访问权限。例如,您可以使用 s.LineWidth
使线条更宽。
s.LineWidth = 2;
该对象还提供对某些对象数组的访问权限,这些对象数组可用于修改单个绘图的线条和 y 轴。要访问单个线条的属性,请使用 s.LineProperties
。对于每个绘图,您可以指定不同线型、标记、绘图类型等。
s.LineProperties
ans=3×1 object
3x1 StackedLineProperties array with properties:
Color
MarkerFaceColor
MarkerEdgeColor
LineStyle
LineWidth
Marker
MarkerSize
PlotType
使用 PlotType
属性将第二个绘图更改为散点图,将第三个绘图更改为阶梯图。
s.LineProperties(2).PlotType = "scatter"; s.LineProperties(3).PlotType = "stairs";
您还可以通过 s.AxesProperties
属性访问单个 y 轴。
s.AxesProperties
ans=3×1 object
3x1 StackedAxesProperties array with properties:
YLimits
YScale
LegendLabels
LegendLocation
LegendVisible
CollapseLegend
例如,更改第一个图的 y 范围。
s.AxesProperties(1).YLimits = [46 54];
更改多个输入的色序
从示例 MAT 文件 indoors
和 outdoors
中加载两个时间表。
load indoors.mat load outdoors.mat
创建一个堆叠图。
s = stackedplot(indoors,outdoors);
更改用于指示变量与时间表之间对应关系的色序。如果您有几个时间表,按名称来选择颜色会比较合适。
colororder(s,["magenta","green"])
如果基于大量输入表或时间表绘制变量,使用颜色图设置色序可能更合适。指定颜色图有 n 种颜色,其中 n 是您在创建堆叠图时指定的表或时间表的数量。
例如,使用 parula
函数设置色序以返回 parula 颜色图。指定颜色数量等于时间表的数量。如果不知道堆叠图中显示多少个表或时间表,请使用 stackedplot
返回的 StackedLineChart
对象的 SourceTable
属性。
numTimetables = numel(s.SourceTable); colororder(s,parula(numTimetables))
具有 Y 轴对数刻度的半对数图
将数据导入一个时间表中。然后生成一个堆叠图。默认情况下,所有图的 x 和 y 轴上都为线性刻度。
tbl = readtimetable("outages.csv");
tbl = sortrows(tbl);
s = stackedplot(tbl)
s = StackedLineChart with properties: SourceTable: [1468x5 timetable] DisplayVariables: {'Loss' 'Customers' 'RestorationTime'} Color: [0 0.4470 0.7410] LineStyle: '-' LineWidth: 0.5000 Marker: 'none' MarkerSize: 6 EventsVisible: on Use GET to show all properties
您可以通过 s.AxesProperties
属性访问单个 y 轴的属性,例如其刻度。
s.AxesProperties
ans=3×1 object
3x1 StackedAxesProperties array with properties:
YLimits
YScale
LegendLabels
LegendLocation
LegendVisible
CollapseLegend
要将第一个和第二个图转换为对数刻度位于 y 轴上的半对数图,请将其 YScale
属性设置为 'log'
。
s.AxesProperties(1).YScale = 'log'; s.AxesProperties(2).YScale = 'log';
输入参数
tbl
— 输入表或时间表
表 | 时间表
输入表或时间表。stackedplot
函数绘制所有数值、逻辑、categorical
、datetime
和 duration
变量,并忽略具有任何其他数据类型的表变量。如果 tbl
有 25 个以上的变量,stackedplot
只绘制前 25 个。
要指定多个输入表或时间表,请使用由表或时间表组成的以逗号分隔的列表或元胞数组。当指定多个输入时,不能在对 stackedplot
的一次调用中混合使用表和时间表。
vars
— 输入表或时间表中的变量
字符串数组 | 数值数组 | 逻辑数组 | 元胞数组 | vartype
下标
输入表或时间表中的变量,使用下表中的索引方案之一指定。
注意:如果基于多个表或时间表创建一个堆叠图,则 vars
只能是字符串数组、字符向量元胞数组或其元素是字符串数组或字符向量元胞数组的元胞数组。
索引方案 | 示例 |
---|---|
变量名称:
|
|
变量索引(仅适用于单个表或时间表):
|
|
变量类型(仅适用于单个表或时间表):
|
|
嵌套元胞数组中指定的变量:
|
|
示例: stackedplot(tbl,[1 3 4])
指定第一个、第三个和第四个变量。
示例: stackedplot(tbl,{["Temp1","Temp2"],"Pressure"})
使用嵌套元胞数组来指定 Temp1
和 Temp2
绘制在同一 y 轴上。
示例: stackedplot(tbl,{{1,2},5})
通过数字指定变量并在同一 y 轴上绘制第一个和第二个变量。
X
— x 值
数值向量 | 日期时间向量 | 持续时间向量 | 逻辑向量
x 值,指定为数值、日期时间、持续时间或逻辑向量。X
的长度必须等于 Y
的行数。
Y
— y 值
数值数组 | 日期时间数组 | 持续时间数组 | 分类数组 | 逻辑数组
y 值,指定为数值、日期时间、持续时间、分类或逻辑数组。stackedplot
函数在单独的 y 轴中绘制每列。
LineSpec
— 线型、标记和颜色
字符串标量 | 字符向量
线型、标记和颜色,指定为包含符号的字符串标量或字符向量。符号可以按任意顺序显示。您不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,只指定标记,则绘图只显示标记,不显示线条。
示例: "--or"
是带有圆形标记的红色虚线。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
颜色名称 | 短名称 | RGB 三元组 | 外观 |
---|---|---|---|
"red" | "r" | [1 0 0] | |
"green" | "g" | [0 1 0] | |
"blue" | "b" | [0 0 1] | |
"cyan" | "c" | [0 1 1] | |
"magenta" | "m" | [1 0 1] | |
"yellow" | "y" | [1 1 0] | |
"black" | "k" | [0 0 0] | |
"white" | "w" | [1 1 1] | |
xvar
— 包含 x 值的表变量
字符串数组 | 字符向量 | 字符向量元胞数组 | 整数数组 | 逻辑数组
包含 x 值的表变量,指定为字符串数组、字符向量、字符向量元胞数组、整数数组或逻辑数组。
仅当输入参量 tbl
或 tbl1,...,tblN
是表而不是时间表、向量或矩阵时,才能指定 xvar
。
如果输入是一个表,则
xvar
指定该表中的一个变量。如果输入是多个表,则
xvar
可以为所有表指定一个变量,也可以为每个表指定一个不同的变量。例如,如果输入是
tbl1,tbl2,tbl3
,并且每个表都有一个名为X
的变量提供 x 值,则xvar
可以是"X"
。但是,如果tbl1
有名为X1
的变量,tbl2
有名为X2
的变量,而tbl3
有名为X3
的变量,则将xvar
指定为["X1","X2","X3"]
。
parent
— 父容器
Figure
对象 | Panel
对象 | Tab
对象 | TiledChartLayout
对象 | GridLayout
对象
父容器,指定为 Figure
、Panel
、Tab
、TiledChartLayout
或 GridLayout
对象。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
示例: stackedplot(tbl,Marker="o",MarkerSize=10)
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: stackedplot(tbl,"Marker","o","MarkerSize",10)
此处列出的堆叠图线条属性仅是适用于所有堆叠图的一个公共子集,无论数据源是表还是数组。有关完整列表,请参阅 StackedLineChart 属性。
Color
— 线条颜色
[0 0.4470 0.7410]
(默认) | RGB 三元组 | 十六进制颜色代码 | "r"
| "g"
| "b"
| ...
线条颜色,指定为 RGB 三元组、十六进制颜色代码或第一个表中列出的颜色选项之一。
对于自定义颜色,请指定 RGB 三元组或十六进制颜色代码。
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于
[0,1]
范围内,例如[0.4 0.6 0.7]
。十六进制颜色代码是字符串标量或字符向量,以井号 (
#
) 开头,后跟三个或六个十六进制数字,范围可以是0
到F
。这些值不区分大小写。因此,颜色代码"#FF8800"
与"#ff8800"
、"#F80"
与"#f80"
是等效的。
此外,还可以按名称指定一些常见的颜色。下表列出了命名颜色选项、等效 RGB 三元组和十六进制颜色代码。
颜色名称 | 短名称 | RGB 三元组 | 十六进制颜色代码 | 外观 |
---|---|---|---|---|
"red" | "r" | [1 0 0] | "#FF0000" | |
"green" | "g" | [0 1 0] | "#00FF00" | |
"blue" | "b" | [0 0 1] | "#0000FF" | |
"cyan" | "c" | [0 1 1] | "#00FFFF" | |
"magenta" | "m" | [1 0 1] | "#FF00FF" | |
"yellow" | "y" | [1 1 0] | "#FFFF00" | |
"black" | "k" | [0 0 0] | "#000000" | |
"white" | "w" | [1 1 1] | "#FFFFFF" | |
"none" | 不适用 | 不适用 | 不适用 | 无颜色 |
以下是 MATLAB® 在许多类型的绘图中使用的默认颜色的 RGB 三元组和十六进制颜色代码。
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" |
示例: "blue"
示例: [0 0 1]
示例: "#0000FF"
LineStyle
— 线型
"-"
(默认) | "--"
| ":"
| "-."
| "none"
线型,指定为下表中列出的选项之一。
线型 | 描述 | 表示的线条 |
---|---|---|
"-" | 实线 |
|
"--" | 虚线 |
|
":" | 点线 |
|
"-." | 点划线 |
|
"none" | 无线条 | 无线条 |
LineWidth
— 线条宽度
0.5
(默认) | 正值
线宽,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。如果该线条具有标记,则线条宽度也会影响标记边。
线宽不能小于像素的宽度。如果将线宽设置为小于系统上像素宽度的值,则线条显示为一个像素的宽度。
Marker
— 标记符号
"none"
(默认) | "o"
| "+"
| "*"
| "."
| ...
标记符号,指定为下表中列出的值之一。默认情况下,对象不显示标记。指定标记符号可在每个数据点或顶点添加标记。
标记 | 描述 | 生成的标记 |
---|---|---|
"o" | 圆圈 |
|
"+" | 加号 |
|
"*" | 星号 |
|
"." | 点 |
|
"x" | 叉号 |
|
"_" | 水平线条 |
|
"|" | 垂直线条 |
|
"square" | 方形 |
|
"diamond" | 菱形 |
|
"^" | 上三角 |
|
"v" | 下三角 |
|
">" | 右三角 |
|
"<" | 左三角 |
|
"pentagram" | 五角形 |
|
"hexagram" | 六角形 |
|
"none" | 无标记 | 不适用 |
MarkerSize
— 标记大小
6
(默认) | 正值
标记大小,指定为以磅为单位的正值,其中 1 磅 = 1/72 英寸。
详细信息
独立可视化
独立可视化是出于特殊目的设计的图,其工作方式独立于其他图。与 plot
和 surf
等其他图不同,独立可视化内置一个预配置的坐标区对象,并且某些自定义不可用。独立可视化还具有以下特性:
它无法与其他图形元素(如线条、补片或曲面)组合。因此,不支持
hold
命令。gca
函数可以将图对象返回为当前坐标区。您可以将图对象传递给许多 MATLAB 函数,这些函数接受坐标区对象作为输入参量。例如,您可以将图对象传递给
title
函数。
提示
要以交互方式浏览堆叠图中的数据,请使用下列功能。
缩放 - 使用滚轮进行缩放。
平移 - 点击并拖动堆叠图以跨 x 值平移。
数据游标 - 将鼠标悬停在某个位置上,以显示每个绘图的 y 值。
版本历史记录
在 R2018b 中推出R2023b: 绘制与时间表相关联的事件
stackedplot
函数可以将事件绘制为基于时间表创建的堆叠图上的线条或着色区域。要绘制与时间表相关联的事件,您必须在调用 stackedplot
之前附加事件表。有关事件表的详细信息,请参阅 eventtable
。
为了支持事件,stackedplot
提供一个新的 EventsVisible
名称-值参量:
如果
EventsVisible
为"on"
,则stackedplot
将事件绘制为线条或着色区域。如果
EventsVisible
为"off"
,则stackedplot
隐藏事件。
R2022b: 在一个堆叠图中绘制来自多个表和时间表中的变量
现在,您可以绘制来自多个输入表或时间表中的变量。在以前的版本中,只能绘制来自单个表或时间表中的变量。
此外,R2022b 中增加了以下名称-值参量。R2022b 中还增加了对应的 StackedLineChart
属性。
CombineMatchingNames
LegendLabels
LegendVisible
LegendOrientation
R2022a: 在堆叠图中多次绘制变量
您可以在堆叠图中多次显示同一个表或时间表变量。在以前的版本中,多次指定同一个变量会导致错误。
例如,从 outages.csv
文件创建一个时间表。然后在您指定的每个其他变量下绘制 RestorationTime
变量。
tbl = readtimetable("outages.csv"); tbl = sortrows(tbl); stackedplot(tbl,["Loss","RestorationTime","Customers","RestorationTime"])
另请参阅
函数
属性
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)