麻烦分配colorbar值在一个二元直方图阴谋

9的观点(30天)
你好!
我处理数据的高度和海浪的时期,每一对有权力价值相关,我必须得到一个二元直方图的数量,而是观察colorbar我希望规模代表相关的权力。
我附上一个例子的情节我已经和代码来获取它。
Xedges = [1:0.25:16];
Yedges = [0.00:0.025:1.6];
h = histogram2 (Tp, Hs、Xedges Yedges)
h。FaceColor =“平”;
h。DisplayStyle =“瓦”;
c = colorbar;
c.Label。字符串=“德observaciones期”;
c.Label。字形大小= 14;
视图(2)
我新在matlab和也许我错了我用的功能,我也试过用sccater3但是我必须组垃圾箱中的数据
所以这个选项并不工作。
提前感谢你的帮助
2的评论
3月
3月 2020年1月7日
对不起,我只是把数据,第一行是商品,第二Tp和最后一个就是力量,我将检查显示亮度图像,看看我能有所成就,
非常感谢

登录置评。

接受的答案

亚当Danz
亚当Danz 2020年1月8日
编辑:亚当Danz 2020年1月8日
分箱的方法
使用被二元直方图的问题
  1. histrogram将基于密度上的颜色而不是力量值。
  2. 经常有超过1功率值在每个垃圾箱。
解决问题1是使用 显示亮度图像() 代替。
解决问题1是平均功率值在每个垃圾箱。 请注意 你失去信息由于权力是平均和实际数据的(x, y)坐标都扔进垃圾箱。散点图的版本没有这些损失。
这是一个演示使用您的数据;你可以添加我的轮廓 其他的答案
d = readmatrix (“Dzi.txt”);
Hs = d (: 1);
Tp = d (:, 2);
功率= d (: 3);
Xedges = [1:0.25:16];%由人事处
Yedges = [0.00:0.025:1.6];%由人事处
%确定哪一本每个Tp和商品价值
TpBins =离散化(Tp, Xedges);
Yedges HsBins =离散化(Hs);
%由本集团的力量值
xyGroups = [TpBins (:), HsBins (:));
[xyGroupUnq ~, unqGroupID] =独特(xyGroups,“行”);
%组织内平均功率值
powerGroupMean = splitapply (@mean、电力、unqGroupID);
%重新组织力量到矩阵
powerMat公司= 0(元素个数(Yedges) 1,元素个数(Xedges) 1);
idx = sub2ind(大小(powerMat公司),xyGroupUnq (:, 2), xyGroupUnq (: 1));
powerMat公司(idx) = powerGroupMean;
%的阴谋,
显示亮度图像(Xedges Yedges powerMat公司)
集(gca),“YDir”,“正常”)
提出=喷气机(100);
提出(1)= 1;%,背景白色
colormap城市规划机构(cmap)
colorbar ()
200108 111749 -图1. png

更多的答案(2)

大卫Goodmanson
大卫Goodmanson 2020年1月7日
编辑:大卫Goodmanson 2020年1月8日
你好,
我一直看一些数据我做了,但是现在你贴我能够插进去就可以了。
我还以为你的情节是非常好。从你的数据,是力量
Pdens = 4 * h ^ 2 * Tp或Hs = (1/2) *√Pdens / Tp)(千瓦/ m Pdens)
变异的15%。将color-by-power试图带出相当轻微影响价值的信息数量的事件,你失去了什么?
顺便说一句,情节上的虚线似乎并不符合上面的公式。对还是错,下面的情节在代码中使用上面的公式。
重对数图的数据可能是有用的,因为功率密度曲线转化为直线和小Hs和Tp的数据不是所有挤压到了角落里。装箱是通过日志的变量和来自不同。现在highest-occupancy箱子比以前更高价值的商品和Tc。而言,我认为这是因为日志有很多更多的空间为较小的值箱和小数据得到分散在更多的垃圾箱。重对数图上的功率密度线没有标签,但他们从20到40瓦分贝/ m(所以30 dB是1千瓦/ m)在5 dB的步骤。
下面的代码为Tp使用x和y Hs,阴谋。
负载(“Dzi.txt”)
yvals =(: 1)佩带天珠;
xvals =(:, 2)佩带天珠;
压水式反应堆=(:,3)佩带天珠;
%初始柱状图
图(1)
h = histogram2 (xvals yvals,“DisplayStyle”,“瓦”)
持有
xPwr = linspace (15100);
yPwr = (1/2) * sqrt ([。25 1 3 7 13]”)。/√(xPwr);
情节(xPwr yPwr,“k——”)
16 xlim ([1])
ylim (1.6 [0])
网格
colorbar
持有
%重复histogram2补丁
图(2);
h2 = histogram2 (xvals yvals);
xbe = h2.XBinEdges;
状态= h2.YBinEdges;
bco = h2.BinCounts ';% '是必要的
关闭(2)
bco = bco (:);
[x y] = meshgrid (xbe状态);
(xp yp) = mesh2patch (x, y);
印第安纳州= (bco = = 0);
xp(:,印第安纳州)= [];
yp(:,印第安纳州)= [];
bco(印第安纳州)= [];
图(2)
补丁(xp, yp, bco“EdgeColor”,“没有”)
持有
xPwr = linspace (15100);
yPwr = (1/2) * sqrt ([。25 1 3 7 13]”)。/√(xPwr);
情节(xPwr yPwr,“k——”)
16 xlim ([1])
ylim (1.6 [0])
网格
colorbar
持有
%重对数版本
图(4)
h4 = histogram2 (log10 (xvals) log10 (yvals))
xbe = 10。^ h4.XBinEdges;
状态= 10。^ h4.YBinEdges;
bco = h4.BinCounts ';% '是必要的
(4)
[x y] = meshgrid (xbe状态);
(xp yp) = mesh2patch (x, y);
印第安纳州= (bco = = 0);
xp(:,印第安纳州)= [];
yp(:,印第安纳州)= [];
bco(印第安纳州)= [];
图(4)
甘氨胆酸ax =;
斧子。XScale =“日志”;
斧子。YScale =“日志”;
补丁(xp, yp, bco“EdgeColor”,“没有”)
持有
xPwr = linspace (15100);
dB = (20 25 30 35 40);%功率密度,瓦分贝/ m
Pvals = 10 ^ (dB / 10) / 1000;%功率密度,千瓦/ m
yPwr = (1/2) *√Pvals ')。/√(xPwr);
情节(xPwr yPwr,“k——”)
16 xlim ([1])
ylim ([。011。6])
网格
colorbar
持有
函数[xpatch ypatch] = mesh2patch (x, y)
%使用meshgrid提供的x和y矩阵,函数创建
%相应补丁meshgrid矩阵每一个“细胞”。
%见下面的注释。
%
% (xpatch ypatch] = mesh2patch (x, y)
xlf = x (1: end-1, 1: end-1);%坳指数x
xlf = xlf (:);
xrt = x (1: end-1, 2:结束);
xrt = xrt (:)
xpatch = [xlf xrt xrt xlf] ';
ydn = y (1: end-1, 1: end-1);%行指数y
ydn = ydn (:);
是的= y(2:结束,1:end-1);
是的=是的(:);
ypatch = [ydn ydn是的是的]”;
结束
% Meshgrid:
% (x, y) = meshgrid (xvec yvec)
%协调x的列指数随x,和
%协调y随y的行索引。
%如果xvec和yvec向量提高值和往常一样,
%然后阴谋的左下角坐标(x (1, 1), y (1,1))。
%的阴谋,因为增加y从下往上,左上角
%的角落y矩阵是左下角的阴谋。
%补丁:
%如果x和y维麦根,然后补丁,如果他们
%的内容一个矩阵,维度(m - 1) x (n - 1)。
4 x % xpatch和ypatch矩阵维度((m - 1) * (n - 1))。
%等xpatch和ypatch补丁的顺序,如果补丁
%的颜色是x和y的函数,例如颜色= f (x1, y1)
%
%的补丁(xpatch ypatch、颜色(:))
%
%给正确的颜色。请注意,x1和日元
%有维度(m - 1) x (n - 1),而不是麦根。
2的评论
大卫Goodmanson
大卫Goodmanson 2021年10月12日
编辑:大卫Goodmanson 2021年10月12日
你好,艾哈迈德,
我想我一定是复制这些值的Dzilam.jpg图像与原始发布问题。
标准表达式P
P = const * H ^ 2 * t
const = 1/2,这个网站在你的评论略高于3情节。然而,情节在Dzilam.jpg似乎已经大约一个常数= 4,那么你的数据。所以我真的不知道是怎么回事。它很容易推测8倍,然而,由于(峰)^ 2 vs (0-to-peak) ^ 2 4倍,和峰值^ 2 vs (rms_peak) ^ 2是2倍。

登录置评。


亚当Danz
亚当Danz 2020年1月7日
编辑:亚当Danz 2020年1月8日
散点图的方法
“我也试过用sccater3但我得组数据在箱子这个选项不工作。”
分组数据在箱子怎么了?你有超过61000的独特价值 权力 45400个值范围内,但这并不意味着你需要成千上万的独特的颜色值的有意义的图像数据。的精度水平,如果你想要,你可以大大增加颜色的数量水平但你不会看到太多的差别。
这个解决方案使用散射()和允许你设置你想要尽可能多的颜色的水平。下图是基于100颜色的水平 飞机 colormap。你可以改变的数量水平到1000年或10000年,你可能不会注意到有什么差别。
有关详细信息,请参阅内联注释。
%从文本文件中读取矩阵中的数据和列分割成变量。
d = readmatrix (“Dzi.txt”);
Hs = d (: 1);
Tp = d (:, 2);
功率= d (: 3);
%设置colormap和水平的数量
提出=喷气机(100);%可以使用任何colormap与任意数量的水平。
colormap %的比例的力量值
cIdx =圆((权力- min(权力))/范围(权力)*(大小(提出,1)1))+ 1;
%画出数据
图()
15岁的散射(Tp,海关提出(cIdx:)“填充”)
包含(“Tp”)
ylabel (“海关”)
%添加colorbar
集(gca),“Colormap”提出)
cb = colorbar ();
caxis ([min(权力),max(权力)))
ylabel (cb、“权力”)
此方法的一个缺点是,你失去了集群的密度数据。你可以覆盖一个等值线图显示通过添加这些线密度。
持有
[nCount, xEdges yEdges] = histcounts2 (Tp、海关、50);
轮廓(xEdges(2:结束)- (xEdges (2) -xEdges (1) / 2, yEdges(2:结束)- (yEdges (2) -yEdges (1) / 2, nCount’,“- - -”,“颜色”,(。6。6。6])
2的评论
亚当Danz
亚当Danz 2020年1月8日
编辑:亚当Danz 2020年1月10日
“我希望我的数据在箱子´s为什么我用histogram2”
看到我的其他回答我只是补充道。
“图的目的是实现”
太棒了!请concider接受哪个答案是最合适的。

登录置评。

类别

找到更多的在蓝色的帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!