Matlab 画图技巧与实例:堆叠图 stackedplot

在 MATLAB 线图中,一共有 3 种类型,分别是

  • 线图,包括:plot,plot3,stairs,errorbar,area,stackedplot 函数。
  • 对数图,包括:loglog,semilogx 和 semilogx 函数,。
  • 函数图,包括:fplot,fimplicit 和 fplot3 函数,感觉和 ezplot 很像,参见

stackedplot 函数专门用来绘制堆叠图,意思是一组数据拥有共同 x 轴,而 y 轴数据不同。在科研中相对于其他类型图,虽然不常常出现,但偶尔能用到。

注意,注意,注意,stackedplot 函数在 2018 版本以下是没有的,只有 2018 版本及以上才有。

1 堆叠图 stackedplot 函数

1.1 用法

  • stackedplot(tbl) 在堆叠图中绘制表或时间表的变量。该函数在垂直层叠的单独 y 轴中绘制变量。这些变量共享一个公共 x 轴。如果 tbl 是表,则该函数绘制变量对行号的图。

    • stackedplot 函数绘制 tbl 的所有数值、逻辑、分类、日期时间和持续时间变量,并忽略具有任何其他数据类型的表变量。
    • 示例:
      • stackedplot (tbl1,...,tblN) 绘制多个表或时间表的变量。输入必须要么全部为表,要么全部为时间表。
      • stackedplot ( {tbl1,...,tblN}) 将输入指定为元胞数组,其元素要么全部为表,或者全部为时间表。此语法等效于上述语法。
  • stackedplot (___,vars) 仅绘制 vars 指定的表或时间表变量。

    • 向量和矩阵数据
      • 示例:
        • stackedplot (X,Y) 绘制 Y 列对向量 X 的图,最多 25 列。
        • stackedplot (Y) 绘制 Y 的列对其行号的图。
  • stackedplot(___,'XVariable',xvar) 指定 x 轴数据。

  • stackedplot(___,LineSpec) 指定线条样式。

  • stackedplot(___,Name,Value) 使用名称-值对指定选项。

  • stackedplot(parent,___) 在指定的父轴上绘制堆叠图。

  • s = stackedplot(___) 将堆叠图对象存储到变量 s 中。

2 Stackplot 用于绘制堆积区域图

Stackplot 用于绘制堆积区域图。它显示完整的数据以进行可视化。它展示了每个部分相互堆叠以及每个部分如何构成完整的图形。它显示数据的各种组成部分,其行为类似于饼图。它具有 x-label,y-label 和标题,其中各个部分可以用不同的颜色表示。堆栈图的思想是随着时间的推移显示'部分到整体'。它用于表示各种数据集而不会彼此重叠。

语法:

matplotlib.pyplot.stackplot(x, *args, labels=(), colors=None, baseline='zero', data=None, **kwargs)

示例 1:使用 Stackplot

代码中 x 轴为周一到周五的天数,y 轴为 No of Study,游戏时间分别用红色和青色表示。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1, 6)
y1 = np.array([1, 2, 3, 4, 5])
y2 = np.array([2, 3, 4, 5, 6])

plt.stackplot(x, y1, y2, labels=['Study', 'Gaming'], colors=['r', 'c'])
plt.legend(loc='upper left')
plt.show()

3 示例:使用 stackedplot 绘制堆叠图并添加图例

% 创建一个表或时间表以存储数据
data = table();
data.Group1 = [1; 2; 3; 4];
data.Group2 = [2; 3; 4; 5];
data.Group3 = [3; 4; 5; 6];
data.Group4 = [4; 5; 6; 7];

% 使用 stackedplot 函数绘制堆叠图
stackedplot(data);

% 添加图例
legend('Group1', 'Group2', 'Group3', 'Group4');

在上述示例中,我们创建了一个包含 4 组数据的表。然后使用 stackedplot 函数将这些数据绘制在一张图上。最后,使用 legend 函数添加图例,其中每个图例项对应一个数据组。你可以根据实际情况调整数据和图例项的标签。

4 细节优化

堆叠折线图中坐标区大部分属性无法像之前分享的其它数据图一样进行调整,而且调整的方式也有所不同。

首先,为了插图的美观,赋上之前选择好的颜色:

%  设定颜色
colors = {'b', 'r', 'g', 'c', 'm', 'y', 'k'};

%  使用循环设定颜色
for ii = 1:size(data,2)
    h(ii) = stackedplot(data(:,ii));
    set(h(ii), 'Color', colors{ii});
end

5 总结

本文介绍了使用 stackedplot 函数绘制堆叠图的几种常见方法。希望这些信息对你有所帮助!

6 其他资源

注意: stackedplot 命令需要 Matlab 版本在 2018b 以上。

请注意: 以上代码和示例仅供参考,你需要根据你的实际情况进行修改和调整。

Matlab 堆叠图绘制技巧:使用 stackedplot 函数

原文地址: https://www.cveoy.top/t/topic/cJRk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录