【Matlab】二维图堆叠为三维图 您所在的位置:网站首页 origin曲线堆叠 【Matlab】二维图堆叠为三维图

【Matlab】二维图堆叠为三维图

2023-08-18 22:19| 来源: 网络整理| 查看: 265

最近看到有人问下面的图应该怎么画。最简单的方法是使用Origin,Origin也可以很容易实现上述的功能,绘图教程:http://www.cappchem.com/Article2014/1108.html。

但是,目前笔者在Matlab中尚未找到现成的相关的绘图方法供我们使用,如果看到这里的某位看官知道Matlab简单的方法,希望不吝赐教,在评论区留言给笔者。这里只是介绍一种通过Matlab代码的方式如何实现。 首先,我们以一个简单的实例开始,假设我们需要画的是下面的一个三维图,和一般的三维散点图不同的是YOZ平面的散点使用折线连接在了一起。

data=textread('F:/时段.txt'); data=data(:,1:end-1); car_num = size(data,1); day_num = size(data,2); hour_num = 3; for i=1:car_num%车序号 %每辆车一条曲线 count = 1; u = []; for j=1:day_num%天序号 u(count,1) = i; u(count,2) = j; u(count,3) = data(i,j); count = count + 1; end %绘制每辆车的曲线 x=u(:,1);%车 y=u(:,2);%天 z=u(:,3);%时段 plot3(x,y,z,'bo',x,y,z); grid on; hold on; axis([0, car_num+1,0,day_num,0,hour_num]);% 坐标轴的显示范围 set(gca, 'XTick', 0:car_num+1); % 车 set(gca, 'YTick', 0:day_num); % 天 set(gca, 'ZTick', 0:hour_num); % 时段 end xlabel('车'); ylabel('天'); zlabel('时段'); title('折线图'); 3 3 2 0 0 0 0 1 3 1 3 0 0 0 0 3 1 3 0 0 0 0 1 0 0 0 0 2 2 2 1 0 1 2 0 0 0 0 1 3 1 0 0 0 0 2 2 1 0 0 0 0 1 1 1 0 0 0 0 3 1 3 3 1 0 0 0 0 0 1 0 0 0 0 1 2 1 3 0 0 0 0 3 1 2 0 0 0 0 2 2 0 0 0 0 1 2 3 3 0 0 0 0 3 2 3 0 0 0 0 2 3 2 0 0 0 0 2 1 2 0 3 1 3 0 0 0 0 0 3 2 0 0 0 0 0 2 1 2 0 0 0 0 0 3 3 1 3 0 0 0 0 3 2 3 2 0 0 0 0 1 3 3 2 0 0 0 0 3 0 3 0 0 0 0 2 1 3 2 0 2 2 2 0 0 0 0 2 1 2 2 0 0 0 0 0 2 1 2 2 0 0 0 0 2 1 0 2 0 0 1 0 0 0 0 1 1 1 2 0 0 0 0 3 2 2 1 0 0 0 0 3 1 3 3 0 0 0 0 1 2 0 0 0 0 3 3 1 3 0 0 0 0 2 2 0 0 0 0 0 3 3 2 0 0 0 0 2 1 2 0 0 0 2 0 1 3 0 0 0 0 0 3 1 1 3 0 0 0 0 1 2 1 0 0 0 0 3 1 3 3 0 0 3 0 0 0 0 3 1 2 3 0 0 0 0 2 2 0 1 0 0 0 0 2 1 3 0 0 0 3 2 2 3 0 0 0 0 2 2 2 0 0 0 0 1 1 1 0 0 0 0 3 3 2 0 0 0 0 1 0 0 0 0 2 2 3 2 0 0 0 0 1 3 3 0 0 0 0 1 2 2 0 0 0 0 3 0 2 3 3 0 2 0 0 0 0 2 3 3 2 0 0 0 0 1 2 3 0 0 0 0 2 2 1 1 0 0 0 0 0 0 0 0 3 3 3 1 0 0 0 0 2 1 0 0 0 0 0 3 1 1 0 0 0 0 1 0 2 3 3 0 2 0 0 0 0 3 2 2 1 0 0 0 0 1 2 2 1 0 0 0 0 2 3 3 3 0 0 0 0 0 1 2 0 0 0 0 2 3 2 0 0 0 0 0 3 3 0 0 0 0 0 1 0 0 0 0 3 3 1 0 3 1 0 0 0 0 2 1 1 0 0 0 0 1 1 2 0 0 0 0 1 2 2 1 0 0 0 0 0 0 1 1 2 0 0 0 0 3 2 0 1 0 0 0 0 3 1 1 3 0 0 0 0 0 0 3 3 1 1 2 0 0 0 0 1 3 3 2 0 0 0 0 3 2 3 1 0 0 0 0 0 3 2 3 1 0 0 0 2 1 2 3 0 0 0 0 1 2 1 0 0 0 0 0 3 1 1 0 0 0 0 3 1 1 2 0 0 0 0 0 1 1 1 0 0 0 0 1 2 0 3 0 0 0 0 1 0 3 3 0 0 0 0 3 3 3 3 0 0 0 0 0 2 1 1 1 0 0 0 0 3 3 3 0 0 0 0 0 1 3 3 2 0 0 0 0 2 3 0 0 1 2 1 3 0 0 0 0 1 2 3 2 0 0 0 0 1 0 2 2 0 0 0 0 1 1 2 1 0 0 0 0 2 3 3 3 0 0 0 0 1 1 3 2 0 0 0 0 1 2 3 3 0 0 0 0 3 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 1 2 0 0 0 0 1 3 0 0 0 0 0 3 0 0 0 0 0 0 3 0 1 0 0 1 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 2 2 2 0 0 3 0 0 0 0 0 3 0 0 1 0 0 0 0 0 2 0 0 0 0 0 2 0 0 0 0 0 0 1 0 0 0 0 0 3 0 0 0 0 0 0 0 0 1 0 0 0 0 1 3 0 3 0 0 0 0 1 0 0 3 2 0 0 0 0 2 0 0 0 0 0 0 3 0 0 0 0 1 0 3 0 0 0 0 3 2 0 0 0 0 1 0 1 0 0 0 0 0 0 2 0 2 0 0 0 0 0 0 0 0 1 0 0 0 0 0 2 0 0 0 0 1 0 0 2 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 3 0 0 0 0 1 0 0 1 0 0 0 0 0 1 2 0 2 0 0 0 0 3 0 0 3 0 3 1 1 0 0 0 0 3 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0 0 0 0 2 2 0 0 0 0 3 3 1 0 0 0 0 1 2 3 1 0 0 0 0 0 2 1 3 0 0 0 2 0 1 3 0 0 0 0 0 0 0 1 2 0 0 0 0 2 1 3 0 0 0 0 0 0 0 0 3 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 3 0 0 0 0 0 2 3 0 2 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 1 0 1 3 0 0 0 0 1 0 3 2 0 0 0 0 0 0 0 2 3 0 0 0 0 3 1 0 1 0 0 0 0 0 0 3 0 0 1 0 0 0 0 0 0 0 3 0 0 1 0 0 0 0 1 2 2 3 0 0 0 0 0 0 0 3 1 2 0 0 0 0 1 0 3 0 0 0 0 0 1 0 0 0 0 2 0 3 1 0 0 0 0 2 0 0 2 0 0 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 0 1 1 0 2 0 0 0 0 0 1 0 0 0 0 0 1 1 3 0 0 0 0 0 3 0 3 0 0 0 0 0 2 3 2 0 0 0 0 0 0 0 0 0 3 0 3 0 0 0 0 0 0 0 0 1 0 2 0 0 0 0 0 2 3 0 2 0 0 3 0 3 0 0 0 0 1 0 0 0 0 3 3 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 2 0 3 0 0 0 0 2 0 0 0 0 2 0 0 0 1 0 0 0 0 2 0 0 0 0 0 2 0 3 2 0 0 0 0 0 0 2 2 3 0 0 0 0 0 0 2 1 1 0 0 0 0 0 2 0 0 0 0 2 0 0 0 0 0 3 1 2 1 0 0 0 0 0 0 1 2 1 2 0 0 0 0 0 0 1 1 3 3 0 0 0 0 3 0 0 0 0 1 0 0 2 0 0 0 0 3 0 0 0 0 1 3 0 0 0 0 0 0 1 1 0 0 0 0 2 0 0 0 0 1 0 3 0 0 0 1 0 0 0 0 0 3 0 0 2 0 0 0 0 3 0 0 0 0 1 2 0 2 0 0 0 0

其中,数据共55行,每一行数据代表一辆车的信息,该行中的第i列代表该车的第i天的状态,例如第一行,第一列中的3代表,第一辆车在第一天的第三个时段出行。

有了上面的基础,是不是就可以绘制类似于下面的图了?其实和下图相比,上图只要YOZ平面上有足够多的的点,同时,X值的个数再少一点,就可以达到下述的效果。

如果你还想添加一个网格,那么可以这样,以下内容参考自Matlab官网提供的示例。

[Y,Z] = meshgrid(1:0.5:10,1:20); X = zeros(size(X)); surf(X,Y,Z)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有