令我烦恼的一件事是关于MATLAB的数据是时间戳是正确呈现的挑战。
例如
time = now:1/24/3600:now+1;
xval = sin((time-time(1)).^2*2*pi) + cos(2*(time-time(1)).^4*2*pi);
plot(time, xval)
set(gca, 'XTickLabel', datestr(get(gca,'Xtick'),'HH:MM'));
现在问题是我平移或缩放时xlabels无法正常调整:
相反,你看到的是相同的刻度标签被回收...这当然回到了这个程序完成了你告诉它做的事情....
我要做的就是再次致电set(gca, 'XTickLabel', datestr(get(gca,'Xtick'),'HH:MM'));
......
但我懒得屁股,每次平移和缩放时我都不想这样做。我想以某种方式在图中编程。
现在数字有一个名为WindowButtonMotionFcn
的奇妙的东西,我可以从中调用另一个函数:
set(gcf,'WindowButtonMotionFcn', @plot_time_change)
function plot_time_change (gcbo, eventdata, handles)
set(gca,'XTickLabel',datestr(get(gca,'Xtick'),'HH:MM'));
end
这样可以正常工作,但视觉上并不优雅,特别是考虑到缩放时它不会被调用。
所以问题是:我有没有更好的解决方案?
答案 0 :(得分:0)
设置后置回调操作以缩放到plot_time_change函数
set(zoom(gca),'ActionPostCallback',@plot_time_change)
请参阅this上一个问题了解更多