下面的示例图是在循环的值存储上创建的(根据矩阵索引绘制的向量数据)。我想修改x轴上的值,在这种情况下,我想把它们除以100,而不改变地块。有什么简单的方法吗?
此外,我有类似的图形,我不仅想除以/或乘值,还想在不改变实际图形的情况下加或减值。我想要创建第二个向量,并将它们相提并论,但由于我有许多不同的图形,我想知道是否有GUI工具帮助我处理这个问题?或者是一些简单的代码行,以更改绘制向量所依据的索引。

感谢每一个建议!
发布于 2016-05-26 08:36:00
我建议更改绘制的数据的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导致的阴谋:

另一种选择是手动更改标签。这有一个缺点,即最初修改的滴答保持不变,当你放大时不会被调整。因此,除非为绘图编写回调函数,否则不会得到任何额外的标记,这比建议的方法要复杂得多。不过,这里有一种只改变滴答声的方法:
xtick = get(gca,'XTick');
set(gca,'XTick',xtick,'XTickLabel',xtick/100);https://stackoverflow.com/questions/37454817
复制相似问题