matlab绘制多维数据图

文章目录

  • 前言
  • 一、四元函数
  • 二、使用步骤
    • 1.设置渲染方法
    • 2.生成坐标轴
    • 3.设置彩色条的取值范围
    • 4.作图
    • 5.保存
    • 6.最终效果
  • 总结


前言

matlab绘制图像方面非常强大,本次记录我在使用过程中的一些总结。


一、四元函数

F = 1 ∣ X 2 + Y 2 + Z 2 + A 2 ∣ F=\frac{1}{|X^2+Y^2+Z^2+A^2|} F=X2+Y2+Z2+A21

二、使用步骤

1.设置渲染方法

代码如下(示例):

%% 设置图像渲染方法
% set(gcf, 'Renderer', 'Painter')
% set(gcf, 'Renderer', 'Zbuffer')
% 选择采用OpenGL渲染图像
set(gcf, 'Renderer', 'OpenGL')   

2.生成坐标轴

代码如下(示例):

%% 生成坐标轴
x15 = -1:0.1:1;   
% 第一维的独立变量
x4 = -1:0.1:1;  
% 第二维的独立变量
x7 = -1:0.1:1;   
% 第三维的独立变量

3.设置彩色条的取值范围

maxcolor = 4;   
% 定义最大值
mincolor = 0;   
% 定义最小值
% 调用hsv配色方案
colormap hsv

设置动画

% 动画
for x5 = -1:0.02:1   % 第四维的独立变量
% 描述第五维的方程
data = 1/abs(X.^2 + Y.^2 + Z.^2 + x5.^2);
% data = 2.492+0.009*X+0.034*Y-0.235*Z-0.003*x5;

4.作图

figure(1);
% 绘制切片
% slice(x,y,z,v,sx,sy,sz),
% 其中x,y,z为三维数据,
% v是关于x,y,z的函数,
% sx,sy,sz是切片的位置
slice(X, Y, Z, data, 0, 0, 0);
% 对进行色彩的插值处理,使色彩平滑过渡
shading interp                      
% 设置当前figure中字体,字号
set(gca, 'FontName', 'Times New Roman', 'FontSize', 14)
% 标注x,y,z轴
xlabel('X');ylabel('Y');zlabel('Z');
% 给图像加标题
title(['F=1/abs(X^2 + Y^2 + Z^2 + x5^2),for x5 = ' num2str(x5)])
% 设置当前对象的透明度
alpha(0.75)
% 限制彩色条的取值
caxis([mincolor maxcolor])
% 显示彩色条
colorbar
% 刷新屏幕
drawnow

5.保存

%% 保存为GIF动画
% 获取当前画面
F = getframe(gcf);
%转成gif图片,只能用256色
im = frame2im(F);
[I,map] = rgb2ind(im,256);
%写入 GIF89a 格式文件    
if x5 == -1
imwrite(I,map,'5D.gif','GIF', 'Loopcount',inf,'DelayTime',0.1);
else       
imwrite(I,map,'5D.gif','GIF','WriteMode','append','DelayTime',0.1);
end 
end

6.最终效果


总结

上述代码为一个整体,记得全部复制后保存在同一个文件内,可根据自己需要修改。

你可能感兴趣的:(绘制漂亮的图片,图像处理,图形渲染)