24小时热门版块排行榜    

查看: 2256  |  回复: 10

b07988

金虫 (正式写手)

星期六可以休息

[求助] 三维柱状图

有三维数据(x,y,z),一共20组。
一半的三维散点图,z值只是一个点,我想让z值成为一个柱状结构,x、y就是坐标。
不知道怎么操作。希望高手帮我写下程序。
回复此楼

» 猜你喜欢

先做最重要的事情,再做次重要的事情
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

★ ★ ★
xiegangmai: 金币+3, 谢谢参与! 2013-04-09 23:47:39
bar3不好用好像。只能一个一个画,但数据不知道是不是等分的。所以柱的宽度定不下来,最后用plot3画,调线的宽度。

clear all
clc
clf

n=20;
x=rand(n,1);
y=rand(n,1);
z=rand(n,1);

hold on
for i=1:length(x)
    plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'-','LineWidth',5);
end
grid on
唉。还是学吧。
2楼2013-04-09 15:58:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

结果好像不太好看。

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : bar3_test_3d.jpg
  • 2013-04-09 16:01:17, 37.13 K
唉。还是学吧。
3楼2013-04-09 16:01:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

引用回帖:
2楼: Originally posted by meatball1982 at 2013-04-09 15:58:51
bar3不好用好像。只能一个一个画,但数据不知道是不是等分的。所以柱的宽度定不下来,最后用plot3画,调线的宽度。

clear all
clc
clf

n=20;
x=rand(n,1);
y=rand(n,1);
z=rand(n,1);

hold on
for i ...

没有应助,给不了金币。
按照你的方法,报错了。
我的数据是
A=[0.002925        0.00299        1.00E+00
.......
0.002975        0.00299        1.00E+00];
hold on
x=A(:,1);y=A(:,2);z=A(:,3);
for i=1:length(A)
    plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'_','LineWidth',5);
end
grid on
但是报错了。不知道什么原因。
记得点应助哦。
先做最重要的事情,再做次重要的事情
4楼2013-04-10 17:29:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
b07988: 金币+20, ★★★很有帮助 2013-04-11 10:59:28
引用回帖:
4楼: Originally posted by b07988 at 2013-04-10 17:29:33
没有应助,给不了金币。
按照你的方法,报错了。
我的数据是
A=;
hold on
x=A(:,1);y=A(:,2);z=A(:,3);
for i=1:length(A)
    plot3(,,,'_','LineWidth',5);
end
grid on
但是报错了。不知道什么原因。 ...

把出错信息给一下啊。没有出错信息,可能无法帮忙。
另外,你的数据有什么特点,能说明一下吗?或是把一小部分给我,看看可能的问题在哪 里。
唉。还是学吧。
5楼2013-04-10 18:18:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
支持
6楼2013-04-10 19:10:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

引用回帖:
5楼: Originally posted by meatball1982 at 2013-04-10 18:18:05
把出错信息给一下啊。没有出错信息,可能无法帮忙。
另外,你的数据有什么特点,能说明一下吗?或是把一小部分给我,看看可能的问题在哪 里。...

Error using plot3
Error in color/linetype argument

Error in zhuzhuangtu (line 275)
    plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'_','LineWidth',5);
其中
A=[1 2 3
23 34 54
43 34  43
...];我随便给的。
数据就是这样的,x,y是坐标,z是一个很大的值。
先做最重要的事情,再做次重要的事情
7楼2013-04-11 11:02:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
b07988: 金币+10, ★★★很有帮助 2013-04-11 16:24:31
xiegangmai: 金币+2, 谢谢参与! 2013-04-11 22:03:11
应该是
plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'-','LineWidth',5);
而不是
plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'_','LineWidth',5);
不知道你看出来区别没。那个横线是英文的'-',而不是'_'。
唉。还是学吧。
8楼2013-04-11 11:29:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

b07988

金虫 (正式写手)

星期六可以休息

引用回帖:
8楼: Originally posted by meatball1982 at 2013-04-11 11:29:03
应该是
plot3(,,,'-','LineWidth',5);
而不是
plot3(,,,'_','LineWidth',5);
不知道你看出来区别没。那个横线是英文的'-',而不是'_'。

果然如此,大意了。
其实,最希望的还是z值根据不同高度取不同的颜色。
利用color256色,将z/zmax然后乘以256,就可以对应。
但程序方面还是不清楚,希望meatball1982能继续应助。
先做最重要的事情,再做次重要的事情
9楼2013-04-11 16:26:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

meatball1982

铜虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
b07988: 金币+20, ★★★★★最佳答案, 非常感谢,第一种挺好的。 2013-04-11 20:06:05
xiegangmai: 金币+3, 谢谢参与! 2013-04-11 22:03:18
子图1是按z值画不同颜色,子图2是同时用宽度来体现你的图,
我觉得子图2更加清楚些。你按照你的需求选择吧。
clear all
clc
clf

n=20;
x=rand(n,1);
y=rand(n,1);
z=rand(n,1);

x_col=x./max(x);
y_col=y./max(y);
z_col=z./max(z);


subplot(2,1,1)
hold on
for i=1:length(x)
    plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'-','Color',[0.3 0.4 z_col(i)],'LineWidth',5);
end
grid on
view(30,20)

subplot(2,1,2)
hold on
for i=1:length(x)
    plot3([x(i),x(i)],[y(i),y(i)],[0,z(i)],'-','Color',[0.3 0.4 z_col(i)],'LineWidth',10*z_col(i));
end
grid on
view(30,20)
唉。还是学吧。
10楼2013-04-11 18:55:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 b07988 的主题更新
信息提示
请填处理意见