关于Matlab:Matlab-情节; 修改X轴值而不修改图形

Matlab - plot; modify X-axis values without modifying graph

以下示例图是从循环的值存储中创建的(矢量数据相对于矩阵索引绘制)。 我想修改x轴上的值,在这种情况下,我想将它们除以100而不改变绘图。 有没有简单的方法可以做到这一点?

此外,我有类似的图形,我不仅希望对值进行除法或乘除运算,而且还希望在不更改实际图的情况下增加或减去值。我想创建第二个矢量并将它们相互绘制,但正如我所知 我想知道是否有一个GUI工具可以帮助我解决这个问题吗? 或者,也许可以使用一些简单的代码行来更改绘制矢量所依据的索引。

enter image description here

感谢每一个建议!


我建议更改绘图数据的x值,而不要手动更改刻度标签。 这样的好处是您可以放大并且刻度线得到适当的调整。 使用图的句柄,读取XData属性并将其进行所需的修改写回即可轻松实现。 请注意,x的值保持不变,只有图本身的数据会更改。

1
2
3
4
5
6
7
8
9
10
11
12
% example data
y = linspace(-0.6,4.05,100)*1e8;
x = linspace(700,1100,100);

% plot figure
figure;                     % create a new figure
ph = plot(x,y);             % plot and store handle

% change x-values of plot
xp = get(ph,'XData');       % extract from plot using handle
xp = xp/100;                % modify x-data
set(ph,'XData',xp);         % write back to plot using handle

结果图:

result1

另一种选择是手动更改标签。 这样做的缺点是,放大后的原始滴答声会保留,并且不会被调整。因此,除非为绘图编写回调函数,否则不会得到任何其他滴答声,这比建议的方法要复杂得多。 不过,这是仅更改刻度的一种方法:

1
2
xtick = get(gca,'XTick');
set(gca,'XTick',xtick,'XTickLabel',xtick/100);