3D直方图和条件着色

energyMax

我有一系列有序的点(X,Y,Z),我想绘制3D直方图,有什么建议吗?

我正在尝试通过本教程http://www.mathworks.com/help/stats/hist3.html进行操作,但是此处的点是随机的,并作为函数呈现。我的例子比较容易,因为我已经知道要点了。

此外,根据Z坐标的数值,我想对它进行不同的着色。例如,最大值-绿色,最小值-红色。与这种情况类似,仅在3D模式下,在MATLAB中对直方图进行条件着色

因此,如果我有一系列要点:

X = [32 64 32 12 56 76 65]
Y = [160 80 70 48 90 80 70]
Z = [80 70 90 20 45 60 12]

您可以通过条件着色为我提供3D直方图代码的帮助吗?

到目前为止,代码如下所示:

X = [32 64 32 12 56 76 65];
Y= [160 80 70 48 90 80 70];
Z= [80 70 90 20 45 60 12];
A = full( sparse(X',Y',Z'));
figure; 
h = bar3(A); % get handle to graphics
for k=1:numel(h), 
    z=get(h(k),'ZData'); % old data - need for its NaN pattern
    nn = isnan(z); 
    nz = kron( A(:,k),ones(6,4) ); % map color to height 6 faces per data point 
    nz(nn) = NaN; % used saved NaN pattern for transparent faces 
    set(h(k),'CData', nz); % set the new colors
end
colorbar;

现在,我只需要清除线条并设计图表即可使其看起来很有用。但是,如何在整个网格不为0的情况下制作bar3呢?

根据此答案,您需要做的就是重新排列数据以匹配该Z答案格式。之后,您可能需要移除边缘线并可能清除零高度条。

% Step 1: rearrange your data
X = [32 64 32 12 56 76 65];
Y= [160 80 70 48 90 80 70];
Z= [80 70 90 20 45 60 12];
A = full( sparse(X',Y',Z'));

% Step 2: Use the code from the link to plot the 3D histogram
figure; 
h = bar3(A); % get handle to graphics

set(h,'edgecolor','none'); % Hopefully this will remove the lines (from https://www.mathworks.com/matlabcentral/newsreader/view_thread/281581)

for k=1:numel(h), 
    z=get(h(k),'ZData'); % old data - need for its NaN pattern
    nn = isnan(z); 
    nz = kron( A(:,k),ones(6,4) ); % map color to height 6 faces per data point 
    nz(nn) = NaN; % used saved NaN pattern for transparent faces 

    nz(nz==0) = NaN; % This bit makes all the zero height bars have no colour

    set(h(k),'CData', nz); % set the new colors. Note in later versions you can do h(k).CData = nz
end

colorbar;

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

3d 网格的遮罩和直方图

来自分类Dev

3D直方图和轮廓图Python

来自分类Dev

gnuplot直方图3d

来自分类Dev

gnuplot直方图3d

来自分类Dev

MATLAB中直方图的条件着色

来自分类Dev

将2D和3D阴影贴图发送到着色器

来自分类Dev

在 3D 矩阵上创建函数以生成均值和直方图

来自分类Dev

使用OpenGL ES对3d形状进行着色和纹理处理

来自分类Dev

我可以在3d中绘制几个直方图吗?

来自分类Dev

如何在R中制作3D直方图

来自分类Dev

在一个3D中绘制多个直方图

来自分类Dev

MatLab:从采样数据创建3D直方图

来自分类Dev

Python-为3D线图着色

来自分类Dev

gnuplot上的选择性3d图着色

来自分类Dev

D3 直方图

来自分类Dev

动态更改d3.js直方图的bin和高度

来自分类Dev

Python-NumPy中的多维(3D)数组的条件和运算

来自分类Dev

Unity 3D基于组件的设计模型和竞争条件

来自分类Dev

侧面带有2D直方图的3D散点图

来自分类Dev

如何在python / plotly中制作2D向量分布的3D直方图

来自分类Dev

d3JS直方图直方图

来自分类Dev

3D 对象以看起来像 2D 对象的方式着色

来自分类Dev

如何使用OpenCV在C ++中访问3D直方图值?

来自分类Dev

归一化3d直方图,因此在Matlab中曲线下的总和= 1

来自分类Dev

在顶点着色器中指定3D rendertarget的目标图层?[HLSL]

来自分类Dev

插值其角节点已知的3D曲面并用色图着色

来自分类Dev

libgdx如何在3D中使用着色器

来自分类Dev

如何在Swift 2.1中通过滑动/点击为动态3D对象着色

来自分类Dev

基于通过散点的类别对3D表面进行着色