matlab矩阵画柱状三维,[原创]利用MATLAB绘制三维彩色柱状图
function scatterbar(x,y,z,scale)
% 根据散点数据绘制3维彩色柱状图
% scatterbar(x,y,z,scale) x,y,z是实值数组,用来指定柱子顶面中心点三维坐标。
% scale是大于0的标量,用来指定柱子的粗细,scale越大,柱子越细,默
% 认情况下根据坐标点自动计算柱子的粗细。
%
% CopyRight:xiezhh(谢中华)
% 2011.10.31
% Example:
% [x,y] = meshgrid(-6:6,-3:0.5:3);
% z = mvnpdf([x(:),y(:)],[0,0],[4,0;0,1]);
% scatterbar(x,y,z)
% scatterbar(x,y,z,50);
% 输入参数类型判断
if nargin < 3
error('至少需要三个输入参数');
end
if ~isreal(x) || ~isreal(y) || ~isreal(z)
error('前三个输入应为实值数组');
end
% 提取x,y,z等长部分的元素
x = x(:);
y = y(:);
z = z(:);
n = min([numel(x) numel(y) numel(z)]);
x = x(1:n);
y = y(1:n);
z = z(1:n);
% 计算极差和差分值
rx = range(x);
ry = range(y);
dx = abs(diff(x));
dx = min(dx(dx>0));
dy = abs(diff(y));
dy = min(dy(dy>0));
% 自动计算柱子的粗细
if nargin == 3
if ~isempty(dx)
hx = dx/2;
else
hx = 0.5;
end
if ~isempty(dy)
hy = dy/2;
else
hy = 0.5;
end
end
% 根据用户输入参数scale计算柱子的粗细
if nargin == 4
if ~isreal(scale) || scale < 0
error('第四个输入应为正的标量');
end
if rx == 0 && ry == 0
rx = 0.5*scale;
ry = rx;
elseif rx == 0 || ry == 0
rx = max(rx,ry);
ry = rx;
end
hx = rx/scale;
hy = ry/scale;
end
% 通过循环绘制三维彩色柱状图
figure
hold on
Xp = [];
Yp = [];
Zp = [];
for i = 1:n
[xp,yp,zp] = Vertices(x(i),y(i),z(i));
Xp = [Xp;xp];
Yp = [Yp;yp];
Zp = [Zp;zp];
end
%通过surf函数生成彩色的立方体盒子
h = surf(Xp,Yp,Zp,Zp,'FaceColor','interp');
%set(h,'FaceAlpha',0.25); %设置立方体盒子透明度
grid on
view(3)
hold off
%--------------------------------------------------
% 求柱子顶点的子函数
%--------------------------------------------------
function [xp,yp,zp] = Vertices(x,y,z)
% 由长方体底面中心坐标求顶点坐标
xp = [x-hx x-hx x+hx x+hx x-hx
x-hx x-hx x+hx x+hx x-hx
x-hx x-hx x+hx x+hx x-hx
x-hx x-hx x+hx x+hx x-hx
x x x x x
NaN NaN NaN NaN NaN];
yp = [y-hy y+hy y+hy y-hy y-hy
y-hy y+hy y+hy y-hy y-hy
y-hy y+hy y+hy y-hy y-hy
y-hy y+hy y+hy y-hy y-hy
y y y y y
NaN NaN NaN NaN NaN];
zp = [repmat(linspace(0,z,4)',[1,5]);z z z z z;NaN NaN NaN NaN NaN];
end
end
matlab矩阵画柱状三维,[原创]利用MATLAB绘制三维彩色柱状图相关推荐
- Matlab画柱状、饼状填充图(亲测可用)
Matlab画柱状.饼状填充图 1. 把下列代码保存为名为"applyhatch.m"的文件 function applyhatch(h,patterns,colorlis ...
- 利用matlab命令画出以下信号的波形,MATLAB实验报告
文档收集于互联网,已重新整理排版.word 版本可编辑,有帮助欢迎下载支持. 1文档来源为:从网络收集整理.word 版本可编辑. 实验一 名称:连续时间信号分析 姓名:王嘉琦 学号:0636 班级: ...
- python画柱状图-Python画柱状统计图操作示例【基于matplotlib库】
本文实例讲述了Python画柱状统计图操作.分享给大家供大家参考,具体如下: 一.工具:python的matplotlib.pyplot 库 二.案例: import matplotlib.pyplo ...
- matlab可以画3d图吗,如何用matlab画3d图
MATLAB三维绘图解读_自考_成人教育_教育专区.MATLAB 上次课内容回顾 1. 2. ? ? ? 3. 4. 5. MATLAB二维绘图 离散函数和数据的可视化; 二维曲线和图形 plot.. ...
- matlab读Excel表格数据画图,matlab读Excel表格数据画图-如何利用matlab根据excel表格里面的数据画图...
用matlab读取excel数据并把对应的数据分别画出曲线图 1.第我们首先需要找到需要导excel表格,这里表格需要是office,其它入有问题,我们可以使用电脑自带的2003版本office 2. ...
- 如何利用matlab做BP神经网络分析(包括利用matlab神经网络工具箱)
如何利用matlab做BP神经网络分析(包括利用matlab神经网络工具箱) 转载:https://blog.csdn.net/xgxyxs/article/details/53265318 最近一段 ...
- matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?
文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...
- matlab几何体,[原创]利用MATLAB绘制管状几何体
function [X,Y,Z] = TubeLike(x,y,z,r) % 绘制三维管道型立体 % TubeLike(x,y,z) 绘制三维管道型几何体,输入参数x,y,z分别为管道中心线各点 ...
- matlab 三维立体图,利用matlab将三维数据画成三维立体图
利用matlab将三维数据画成三维立体图 发布时间:2018-08-20 14:13, 浏览次数:1367 , 标签: matlab 首先先分析对象.将数据利用matlab画出图,最开始是导入数据,然 ...
最新文章
- 服务器维护日常需做哪些工作?
- 语言专项精讲课程 赵海英_最全汇总:沪江日语课程体系指南
- 函授计算机大专自我鉴定100字,函授大学毕业自我鉴定100字(精选5篇)
- 手把手教你在Modelarts平台上进行视频推理
- 未处理System.BadImageFormatException,试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)
- Summernote个性化定制使用帮助(三)
- 鸿蒙音响怎么调,好音质是调出来的 大师教你咋调试音响
- php 死链查询,seo网站死链解决方法 死链查询检测工具
- Java代码调用第三方接口发送短信
- 【从Northwind学习数据库】数据更新
- 微信支付商户平台,企业付款,企业向个人付款接口总结
- 线段树 从入门到进阶(超清晰,简单易懂)
- 【这很AI】是福是祸?科学家利用AI翻译狗的语言,人狗对话将成可能
- 2016年的年终总结吧
- fastdfs存储空间不足报错:错误码:28,错误信息:没有足够的存储空间
- vue做移动端适配最佳解决方案,亲测有效
- mc33063,mc34063发热问题
- EFL+WEBKIT
- 【渝粤教育】广东开放大学 学前教育研究方法 形成性考核 (23)
- 移动距离 奇妙的数字