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

时间:2016-05-26 07:55:17

标签: matlab plot

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

此外我有类似的图表,我不仅要分割/或乘以值,而且还要添加或减去值而不改变实际的图。我想创建第二个向量并将它们相互绘制,但是因为我有很多不同的图表,我想知道是否有一个GUI工具来帮助我这个?或者可能是一些简单的代码行来改变绘制矢量的索引。

enter image description here

感谢每一个建议!

1 个答案:

答案 0 :(得分:1)

我建议更改绘制数据的x值,而不是手动更改刻度标签。这样做的好处是可以放大并正确调整刻度。通过使用绘图的句柄可以轻松实现,读取XData属性并使用所需的修改将其写回。请注意,x的值保持不变,只有图表本身的数据会发生变化。

% 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

另一种选择是手动更改标签。这样做的缺点是原始修改的刻度线保持不变,并且在放大时不会进行调整。因此,除非您为绘图编写回调函数,否则不会获得任何额外的刻度,这比建议的方法更复杂。不过,这里只是一种改变滴答的方法:

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