24小时热门版块排行榜    

查看: 2263  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

b07988

金虫 (正式写手)

星期六可以休息

[求助] 三维柱状图

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

» 猜你喜欢

先做最重要的事情,再做次重要的事情
已阅   回复此楼   关注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的回帖
查看全部 11 个回答

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的回帖
信息提示
请填处理意见