在冲浪图中重新缩放 x 轴
Rescale x-Axis in surf plot
我有一个 1024 x 100 的矩阵。当我使用函数 surf 时,它绘制数据,x 的轴限制为 0 到 1024,y 的轴限制为 0 到 100,矩阵的条目作为 z 值(如预期)。
现在我想让图中的所有内容保持相同,除了 x 轴限制:我想让它们从 400 到 1000,即我想重新缩放 x 轴。我不想从第 400 个条目开始并在第 1000 个条目处停止。我想让第一个条目对应到 400,最后一个条目对应到第 1000。换句话说,只更改 x 轴的标签,使其从 400 变为 1000,而不是从 0 变为 1024。是否有一种简单的方法可以做到这一点,或者我是否需要使用 meshgrid?
你可能想要这样的东西:
%Example data
[X,Y] = meshgrid(1:0.1:8,1:0.1:8);
Z = sin(X)+cos(Y);
%Example plot
surf(X,Y,Z)
%We change the XTick Labels
xt = get(gca,'XTick'); %get the actual xtick value
xl = arrayfun(@num2str, linspace(400,1000,length(xt)), 'Uniform', false).';
set(gca,'XTickLabel',xl) %set the news xtick labels.
使用 set(gca,'XTickLabel',your_cell_of_string)
您可以用一些新闻字符串更改实际的 XTickLabel,xl
和 xt
必须具有相同的大小。
我有一个 1024 x 100 的矩阵。当我使用函数 surf 时,它绘制数据,x 的轴限制为 0 到 1024,y 的轴限制为 0 到 100,矩阵的条目作为 z 值(如预期)。 现在我想让图中的所有内容保持相同,除了 x 轴限制:我想让它们从 400 到 1000,即我想重新缩放 x 轴。我不想从第 400 个条目开始并在第 1000 个条目处停止。我想让第一个条目对应到 400,最后一个条目对应到第 1000。换句话说,只更改 x 轴的标签,使其从 400 变为 1000,而不是从 0 变为 1024。是否有一种简单的方法可以做到这一点,或者我是否需要使用 meshgrid?
你可能想要这样的东西:
%Example data
[X,Y] = meshgrid(1:0.1:8,1:0.1:8);
Z = sin(X)+cos(Y);
%Example plot
surf(X,Y,Z)
%We change the XTick Labels
xt = get(gca,'XTick'); %get the actual xtick value
xl = arrayfun(@num2str, linspace(400,1000,length(xt)), 'Uniform', false).';
set(gca,'XTickLabel',xl) %set the news xtick labels.
使用 set(gca,'XTickLabel',your_cell_of_string)
您可以用一些新闻字符串更改实际的 XTickLabel,xl
和 xt
必须具有相同的大小。