Matlab - plot; modify X-axis values without modifying graph
以下示例图是从循环的值存储中创建的(矢量数据相对于矩阵索引绘制)。 我想修改x轴上的值,在这种情况下,我想将它们除以100而不改变绘图。 有没有简单的方法可以做到这一点?
此外,我有类似的图形,我不仅希望对值进行除法或乘除运算,而且还希望在不更改实际图的情况下增加或减去值。我想创建第二个矢量并将它们相互绘制,但正如我所知 我想知道是否有一个GUI工具可以帮助我解决这个问题吗? 或者,也许可以使用一些简单的代码行来更改绘制矢量所依据的索引。
感谢每一个建议!
我建议更改绘图数据的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 |
结果图:
另一种选择是手动更改标签。 这样做的缺点是,放大后的原始滴答声会保留,并且不会被调整。因此,除非为绘图编写回调函数,否则不会得到任何其他滴答声,这比建议的方法要复杂得多。 不过,这是仅更改刻度的一种方法: