在循环的值存储上创建以下示例图(对照矩阵索引绘制的矢量数据)。我想修改x轴上的值,在这种情况下,我想将它们除以一百而不改变绘图。有没有简单的方法来做到这一点?
此外我有类似的图表,我不仅要分割/或乘以值,而且还要添加或减去值而不改变实际的图。我想创建第二个向量并将它们相互绘制,但是因为我有很多不同的图表,我想知道是否有一个GUI工具来帮助我这个?或者可能是一些简单的代码行来改变绘制矢量的索引。
感谢每一个建议!
答案 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
结果剧情:
另一种选择是手动更改标签。这样做的缺点是原始修改的刻度线保持不变,并且在放大时不会进行调整。因此,除非您为绘图编写回调函数,否则不会获得任何额外的刻度,这比建议的方法更复杂。不过,这里只是一种改变滴答的方法:
xtick = get(gca,'XTick');
set(gca,'XTick',xtick,'XTickLabel',xtick/100);