N = 1e3;                  % number of points
rng(7)
signalIn = rand(N, 2)*30;
signalIn(1:10,:) = 5.5;    % 密集
signalIn(51:70,:) = 15.5;  % 密集
[xy_count, xy_cent]=getDist2D(signalIn,2);
[xy_count, xy_cent]=getDist2D(signalIn,2);%% 三维柱状图
close all
[x15,y15]=size(xy_count);
X15=1:x15;
Y15=1:y15;
figure
% mesh( xy_cent{1}, xy_cent{2},xy_count);
% mesh(Y15,X15,(xy_count));
% imagesc(xy_count)
% % bar3( xy_cent{1}', xy_cent{2}',xy_count);
thisFig=bar3(xy_count);
% ----根据柱子高度设置颜色----
if 0% https://blog.csdn.net/weixin_40398103/article/details/89380310for k = 1:length(thisFig)zdata = thisFig(k).ZData;%zdata=ones(size(zdata))*0.2;  % all use the same colorthisFig(k).CData = zdata;thisFig(k).FaceColor = 'interp';  % 渐变色%         thisFig(k).FaceColor = 'r';%           thisFig(k).FaceColor = [0.30 0.75 0.93];%         thisFig(k).FaceColor =  [0.62 0.91 0.97];%         thisFig(k).FaceColor =  [.75,.85,.95]; % Plot the bars in a light steel blue.in hist3end%      set(gcf,'renderer','opengl');%      set(get(gca,'child'),'FaceColor','interp','CDataMode','auto');
end
% h.XTickLabel =xy_cent{1};  % 直接用会有问题
% h.YTickLabel =(101:1:124);
% set(gca,'xticklabel',{'a','b','c','d','e'});
% set(gca, 'FontSize',12','XTick', (101:106));
% 1、xticklabel:xticklabel是刻度标签。
% 2、xtick:xtick是坐标轴刻度。
% ----改变刻度显示值----
h = gca;
if 1% https://www.cnblogs.com/fengsf/p/14643905.html% https://ww2.mathworks.cn/help/matlab/creating_plots/color-3-d-bars-by-height-1.html?searchHighlight=bar3&s_tid=srchtitle%x的坐标xt=get(gca,'XTick');if min(xt)==0a=1;elsea=xt(1);endif max(xt)>length(xy_cent{1})b=length(xy_cent{1});elseb=xt(end);endnewXIdx=[a xt(2:end-1) b];newXTickLabel=xy_cent{1}(newXIdx);h.XTickLabel=newXTickLabel;% y的坐标yt=get(gca,'YTick');  % 首0改1,末超用endnewYIdx=[1 yt(2:end-1) length(xy_cent{2})];newYTickLabel=xy_cent{2}(newYIdx);h.YTickLabel=newYTickLabel;
end
colorbar
title('分布')
xlabel('x')
ylabel('y')
zlabel('z')

以上是主函数。

2022.12.4 补充getDist2D函数:

function [xy_count, xy_cent]=getDist2D(xy,type,x_range,y_range)if ~(isreal(xy))xy=[real(xy) imag(xy)];
end
N=size(xy,1);
K1 = 64/2;    % number of intervals along x
K2 = 64/2;
% int_x = [min(xy(:,1)) :1/K1: max(xy(:,1))+1/K1];
% int_y = [min(xy(:,2)) :1/K2: max(xy(:,2))+1/K2];
int_x=linspace(min(xy(:,1)) , max(xy(:,1))+1/K1, K1);
int_y=linspace(min(xy(:,2)) , max(xy(:,2))+1/K2, K2);if nargin > 2int_x = x_range;int_y = y_range;
end
% K1=length(int_x)-1;
% K2=length(int_y)-1;
K1=length(int_x);
K2=length(int_y);
switch typecase 1%% hist3[count_cells_hist,xy_cent] = hist3(xy, 'Edges', {int_x int_y});% 注意hist3得到的矩阵是K1+1*K2+1的, 所以把最后一行和一列去掉.% 最后一行或一列表示的是 X(k,1)= edges{1}(end)或者X(k,2) = edges{2}(end)的点数xy_count=count_cells_hist;case 2%% histcounts2[xy_count,Xedges,Yedges] = histcounts2(xy(:,1),xy(:,2),int_x,int_y);%         [N,Xedges,Yedges] = histcounts2(x,y,6,'Normalization','probability')%         [N,Xedges,Yedges] = histcounts2(x,y,6,'Normalization','pdf')%          all(count_cells_hist(:) == xy_count(:))xy_cent{1}=Xedges;xy_cent{2}=Yedges;xy_cent{1}(end) = [];xy_cent{2}(end) = [];
end

源数据无了,使用rng(7)生成随机数据,绘制的分布图如下

matlab绘制三维柱状图(hist3,bar3)相关推荐

  1. matlab rgb三维直方图,MATLAB小技巧之十:利用MATLAB绘制三维彩色柱状图[转载]

    MATLAB自带有绘制三维柱状图的函数bar3,有版友反映不好控制柱子的颜色,特别是bar3不能绘制渐变色的柱子,并且bar3不能根据用户指定的散点数据绘制柱状图.为此,我编写了一个函数(scatte ...

  2. matlab绘制三维图形

    原文地址:matlab绘制三维图形 作者:hotinko1 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,-,xn ...

  3. matlab用fill三维,使用matlab绘制三维图形的方法

    使用matlab绘制三维图形的方法 使用matlab绘制三维图形的方法 三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项 ...

  4. Matlab 绘制三维立体图(以地质异常体为例)

    Matlab 绘制三维立体图(以地质异常体为例) 参考文章: (1)Matlab 绘制三维立体图(以地质异常体为例) (2)https://www.cnblogs.com/yangwenbo214/p ...

  5. matlab柱状图加阴影,matlab 绘制 阴影 柱状图 条形图

    matlab 绘制 阴影 柱状图 条形图 matlab 绘制 阴影 柱状图 条形图 matlab 绘制 阴影 黑白 柱状图 条形图 冰三点水 在科技文献写作等过程中,我们往往需要粘贴柱状图或者条形图, ...

  6. 用matlab绘制P三曲线,知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线...

    导航:网站首页 > 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画三维曲线 知道曲线方程 怎么用matlab绘制三维图 一定要给出程序 , matlab怎样画 ...

  7. matlab绘制三维立体图

    我原以为理解并且会应用matlab绘制三维图,但动起手来,我发现各种不会,弄着弄着都有点怀疑人生了.首先,plot与plot3分别绘制二维与三维的曲线,而不是曲面,这是我的一个误区!还有,当你有x,y ...

  8. 数学建模更新13(MATLAB绘制三维图【上】)

    MATLAB绘制三维图 一.mesh函数以及拓展函数 1.mesh(X,Y,Z)的用法 [1]X是n维向量,Y是m维向量,Z是m*n维的矩阵 [2]X.Y和Z都是m*n维的矩阵 2.mesh(Z)的用 ...

  9. matlab dlnode,Matlab 绘制三维立体图(以地质异常体为例)

    前言:在地球物理勘探,流体空间分布等多种场景中,定位空间点P(x,y,x)的物理属性值Q,并绘制三维空间分布图,对我们洞察空间场景有十分重要的意义. 1. 三维立体图的基本要件: 全空间网格化 网格节 ...

最新文章

  1. MFC程序在控制台输出的实现
  2. 【线性表4】线性表的链式实现:静态表
  3. Android DatePicker, TimePicker控件的使用
  4. .NET Core UI框架Avalonia
  5. java-JSON: Expected value at 1:0 错误
  6. C++primer 第 3 章 字符串、向量和数组 3 . 5 数组
  7. 坯子库曲面推拉教程_一招曲面流动,搞定99%异形建模
  8. JSP和Servlet
  9. 离散数学经典教材及资料(整理)
  10. 超分辨重建-Bicubic双三次线性插值opencv实现
  11. 配置keepalived实现Nginx高可用(单主、双主模式)
  12. word中删除分节符时页面格式会发生改变
  13. ORA-00980: 同义词转换不再有效
  14. 国外android大神博客,Android手机浏览器(国外篇)横向对比评测
  15. 讯飞离线语音合成(离线资源包)
  16. man手册中文版设置
  17. windows下的WSL开发环境配置以及相关工具、插件
  18. 京瓷2010复印a4内容不全_京瓷1800打印机打印时设置了A4为什么打印不了复印正常...
  19. OpenHarmony轻量系统开发【11】移植MQTT
  20. 2021-2027全球与中国便携式X射线荧光光谱仪市场现状及未来发展趋势

热门文章

  1. dad my_My dad,my hero!
  2. 支付宝公钥私钥应用公钥私钥
  3. 1. Vue CLI脚手架
  4. Java(13)- 抽象类
  5. ROS2入门教程—理解话题(Topic)
  6. 北京房租大涨?6个维度,数万条数据帮你揭穿(附详情代码)
  7. arduino使用oled代码_Arduino指纹传感器模块使用方法(FPM10A)
  8. 数据库事务(Transaction)与锁(Locking)详解图析
  9. C#中隐藏的15大功能
  10. Linux安装 Oracle 19C 实操