Matlab Hist3/Imagesc 轴缩放
Matlab Hist3/Imagesc Axis Scaling
我有 2 个数据数组 x
和 y
都是 22250×54,我正在尝试使用 hist3
和 imagesc
来制作每个 x(:,n)
和 y(:,n)
对的密度图,其中 n = 1:54
。
我正在使用 imagesc(values2)
其中:
values2 = hist3([x(:) y(:)],[round(max(x)) round(max(y)) ]);
用作我的参数来绘制 54 个 x
和 y
值中的每一个以获得唯一的轴范围并且它工作正常。但是,当我为 values2
放置固定整数值时,例如
values2 = hist3([x(:) y(:)],[50 50 ]);
x
和 y
的 54 列中每一列的实际值最终会缩放到 [50 50] 参数,或者如果我使用 [100 100] 并且它不反映每个 x
和 y
的实际值。如何固定轴 x,y
范围并将实际值保持在固定轴范围内?
我也试过在调用 imagesc(values2)
之后在单独的调用中使用 xlim
和 ylim
但这也不起作用 - 它在非常小的区域绘制我的数据并在图像区域周围留下很多白色 space。
感谢您的帮助!!
我已经尝试了下面 link 的 "checked" 响应来到达我现在的位置:
Scatter plot with density in Matlab
使用 answer you referenced 你可以写:
% some arbitrary data:
x = randi(30,30,54);
y = randi(61,30,54)-21;
% constant values for every n:
nbins = [round(range(y(:))) round(range(x(:)))]+1;
x_lim = [min(x(:)) max(x(:))];
y_lim = [min(y(:)) max(y(:))];
% plotting:
for n = 1:9
[values2, centers] = hist3([x(:,n) y(:,n)],nbins);
subplot(3,3,n) % this is just for compact demonstration
h = imagesc(centers{:},values2.');
title(num2str(n))
xlim(x_lim) % keeping the x-axis limits constant
ylim(y_lim) % keeping the y-axis limits constant
axis xy
end
请注意,如果 x(:,n)
或 y(:,n)
中的数据范围小于 y(:)
和 x(:,n)
.
这将给出:
我有 2 个数据数组 x
和 y
都是 22250×54,我正在尝试使用 hist3
和 imagesc
来制作每个 x(:,n)
和 y(:,n)
对的密度图,其中 n = 1:54
。
我正在使用 imagesc(values2)
其中:
values2 = hist3([x(:) y(:)],[round(max(x)) round(max(y)) ]);
用作我的参数来绘制 54 个 x
和 y
值中的每一个以获得唯一的轴范围并且它工作正常。但是,当我为 values2
放置固定整数值时,例如
values2 = hist3([x(:) y(:)],[50 50 ]);
x
和 y
的 54 列中每一列的实际值最终会缩放到 [50 50] 参数,或者如果我使用 [100 100] 并且它不反映每个 x
和 y
的实际值。如何固定轴 x,y
范围并将实际值保持在固定轴范围内?
我也试过在调用 imagesc(values2)
之后在单独的调用中使用 xlim
和 ylim
但这也不起作用 - 它在非常小的区域绘制我的数据并在图像区域周围留下很多白色 space。
感谢您的帮助!!
我已经尝试了下面 link 的 "checked" 响应来到达我现在的位置: Scatter plot with density in Matlab
使用 answer you referenced 你可以写:
% some arbitrary data:
x = randi(30,30,54);
y = randi(61,30,54)-21;
% constant values for every n:
nbins = [round(range(y(:))) round(range(x(:)))]+1;
x_lim = [min(x(:)) max(x(:))];
y_lim = [min(y(:)) max(y(:))];
% plotting:
for n = 1:9
[values2, centers] = hist3([x(:,n) y(:,n)],nbins);
subplot(3,3,n) % this is just for compact demonstration
h = imagesc(centers{:},values2.');
title(num2str(n))
xlim(x_lim) % keeping the x-axis limits constant
ylim(y_lim) % keeping the y-axis limits constant
axis xy
end
请注意,如果 x(:,n)
或 y(:,n)
中的数据范围小于 y(:)
和 x(:,n)
.
这将给出: