今天,又一个Matlab群友在群里提了一个如何用Matlab绘制竖线图的疑问。思来想去,也只能用最笨拙的方法来绘制了,就是挨个描点连接,组成一系列连起来的竖线图。这玩意,没有弯路可走,只能一个一个点绘制了。起初,我还想着用绘制离散序列数据的stem函数来完成,发现完全不是图例那种结果。
下面进入正题:
群友直接抛了一个效果图,如下:
很明显,这是以每条竖线为一个绘制单位,一共绘制了五次得到的结果,并且每个点都用圆点作为标记。话不多说,直接上代码:
clc;
clear all;
figure
hold on
x1=[1 1 1 1];
y1=[1 2 3 4];
x2=[2 2 2 2];
y2=[4 5 6 8];
x3=[3 3 3 3];
y3=[3 4 5 9];
x4=[4 4 4 4];
y4=[2 3 4 6];
plot(x1,y1,'-k.',x2,y2,'-k.',x3,y3,'-k.',x4,y4,'-k.','MarkerSize',20,'LineWidth',2)
axis([0 5,0,10])
set(gca,'linewidth',2)
box off
得到的绘制结果如下:
代码解释如下:
- 1-2行:清理命令行窗口,清理工作区
- 3-4行:打开一个画图窗口,并保持
- 5-12行:申明图例中的各个数据点
- 13行:将各个数据点绘制成连线图,-k.表示实线连线,颜色为黑色,数据点用实心点表示;MarkerSize指定数据实心点大小,LineWidth指定实线直径。
- 14行:设置横纵坐标范围
- 15行:设置坐标轴宽度
- 16行:关闭边框
至于示例图中的标记,可以直接用text函数在绘图结果上做标记来实现。
原创文章,作者:古哥,转载需经过作者授权同意,并附上原文链接:https://iymark.com/articles/1013.html