本帖最后由 ffr 于 2013-1-21 15:31 编辑 我有一批数据,x,y,z 分别为频率,温度,所以应数值,比如 39℃ 43℃ 46℃ 48℃ 42MHZ 141.73 155.17 166.89 177.75 64MHZ 190.36 212.18 230.74 248.6 128MHZ 101.24 106.97 112.09 116.88 想将这组数据表现在三维坐标中,如下面的图,求指点:) |
27 条回复
我也想知道,有谁具体写写 |
如2L所说 clear all clc te = [39 43 46 48]; fe = [42 64 128]; da=[141.73 155.17 166.89 177.75 190.36 212.18 230.74 248.6 101.24 106.97 112.09 116.88]; for i=1:length(fe) y=fe(i)*ones(size(te)); plot3(te,y,da(i,:),'r.-'); hold on end grid on |
2013-1-21 19:14 上传
点击文件名下载附件
336 Bytes, 下载次数: 8304
直接用mesh函数就可以 |
本帖最后由 remie 于 2013-1-22 10:31 编辑
|
figure3
figure2
figure1
上一贴第一句不是的,怎么编辑都编辑不好。。 |
加上这两个效果是不是更好 set(gca,'ytick',fe) set(gca,'xtick',te) ![]() |
本帖最后由 chupei1020 于 2013-1-23 22:06 编辑 te = [39 43 46 48]; fe = [42 64 128]; da=[141.73 155.17 166.89 177.75 190.36 212.18 230.74 248.6 101.24 106.97 112.09 116.88]; mesh(te,fe,da) |
好!!!!!!!!!! |
如果是三个不同点函数而不是离散的点那代码该怎么写? |
kyu16866 发表于 2013-1-23 15:21 这两句的具体用法是什么呢? |
meatball1982 发表于 2013-1-21 19:14 你好,这种图叫做瀑布图,但是前提条件是所有曲线都是共用一个x轴。 我现在想画这种图,但是如果每个曲线的长度不同(即x轴不同时),如何也画成这种图呢? 因为如果两条曲线,一条有1000个数据点,一条只有100个数据点,共用一个x轴会导致,一条曲线很长,而另一条曲线只有前一条的十分之一,很不雅观,我想让他们有相同长度,即做一个多x多y的图 |
冥王星夜 发表于 2018-12-9 11:23 plot3就是画对应的x,y,z点。你的问题我没太看明白。 是 x1 = 1:100; y1 = sin(x1); x2 = 1:1000; y2 = cos(x2) 画在一个图里? |
meatball1982 发表于 2018-12-12 09:01 不是的,我的问题如下: x1 = 0:0.01:1; % 101个数据点 y1 = sin(x1); x2 = 0: 0.1:1; % 11个数据点 y2 = cos(x2); 画在一个图里,如果是平面图,我可以用plotyy,但是两条曲线就在同一个平面上了 我想画三维图,其中“y1-x1”曲线在z轴的z =1处,“y2-x2”曲线在z轴的z=2处,两个曲线不在同一个平面上,同理我要用这个方法,把更多的“yn-xn”曲线画在z = n处,这样子看起来更加直观。 但是每条曲线在x轴的长度上是不一样的,有的是101个点,有的是11个点,还有的是其他数目,如果所有曲线共用一个x轴,那么有的线长,有的线短。 所以想问,有什么方法,可以实现我上面的想法,但是可以使所有线看起来长度相等。我思考后觉得,难点就是如何让不同长度的曲线分别有自己的一个x轴,这样子才能画成瀑布图的形式。 |
meatball1982 发表于 2018-12-12 09:01 https://www.ilovematlab.cn/forum. ... =3471466#pid3471466 这个是我之前询问这个问题所发起的帖子,麻烦您看一下,提下宝贵建议,谢谢! |
|
冥王星夜 发表于 2018-12-13 13:35 看22L。 |
非常感谢,您的方法非常正确,我这边执行过后出现了我想要的效果。 之前是我考虑得太复杂了,而且没有了解plot3函数的精髓,这次受益匪浅。 |
Powered by Discuz! X3.4
© 2001-2022