电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2277|回复: 2
收起左侧

matlab画四维散点图

[复制链接]

598

主题

943

帖子

5138

积分

四级会员

Rank: 4

积分
5138
发表于 2022-9-4 14:10:58 | 显示全部楼层 |阅读模式
我现在有X,Y,Z,V的数据组,其中X,Y,Z是空间坐标,V是坐标上的值,想根据颜色来划分值的大小,值大的颜色深,值小的颜色浅,其中大多数值都趋近于0,在颜色上近似为白色,我找到了一个画图程序,但画出来的图,在空间上面的颜色(大多数是白色)遮挡了空间下面的颜色,我看不到所有大的值所在的位置,我一会把程序贴出来,希望有精通这方面的大神帮帮忙,说的有点乱。。。我其实就是想看到大的值(用颜色深的点表示)在空间上的位置。。。
回复

使用道具 举报

571

主题

910

帖子

4781

积分

四级会员

Rank: 4

积分
4781
发表于 2022-9-4 14:11:51 | 显示全部楼层
function plot3c(x,y,z,v,marker,string)
%FUNCTION PLOT3C(X,Y,Z,V,'MARKER','TitleString') plots the values in vector v colour coded
% at the positions specified by the vectors x, y, and z in a 3-D axis
% system. A colourbar is added on the right side of the figure.
%
% The colorbar strectches from the minimum value of v to its
% maximum in 9 steps (10 values).
%
% The second last argument is optional to define the marker being used. The
% default is a point. To use a different marker (such as circles, ...) send
% its symbol to the function (which must be enclosed in '; see example):
% plot3c(X,Y,Z,V,'o')
%
% A title can be optionally added to the colorbar.:
% plot3c(X,Y,Z,V,'o','Title')
%
% This function is an extension of PLOTC.
%
% Example:
% The seismic P-velocity (v) depends on the three parameters porosity (por) and the
% bulk moduli of the saturating fluid (kf) and the elastic frame (kd). To plot the
% velocity data as a function of these three parameters use (assuming that
% all data are given in vectors):
%
% plot3c(por,kd,kf,v,'d','Velocity')
%
% Uli Theune, University of Alberta, 2004
% utheune@phys.ualberta.ca
%
if mod(length(x)+length(y)+length(z)+length(v),4)
    disp('All vectors must be of same length')
    return
end
delete(gca)
if nargin <5
    marker='.';
end
if nargin < 6
    string=' ';
end
% Define the data range
miv=min(v);
mav=max(v);
% Get the current colormap
map=colormap;
% Plot the points
hold on
for i=1:length(x)
    in=round((v(i)-miv)*(length(map)-1)/(mav-miv));
    %--- Catch the out-of-range numbers
    if in==0;in=1;end
    if in > length(map);in=length(map);end
    plot3(x(i),y(i),z(i),marker,'color',map(in,:),'markerfacecolor',map(in,:))
end
hold off

% Re-format the colorbar
h=colorbar;

set(h,'ylim',[1 length(map)]);
yal=linspace(1,length(map),10);
set(h,'ytick',yal);
% Create the yticklabels
ytl=linspace(miv,mav,10);
s=char(10,4);
for i=1:10
    if abs(min(log10(abs(ytl)))) <= 3
        B=sprintf('%-4.3f',ytl(i));
    else
        B=sprintf('%-4.2E',ytl(i));
    end
    s(i,1:length(B))=B;
end
set(h,'yticklabel',s,'fontsize',9);
grid on
set(get(h,'title'),'string',string,'fontweight','bold')
view(3)
回复 支持 反对

使用道具 举报

604

主题

970

帖子

5115

积分

四级会员

Rank: 4

积分
5115
发表于 2022-9-4 14:12:16 | 显示全部楼层
楼主画出来了吗
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表