【发布时间】:2012-07-27 12:36:41
【问题描述】:
我仍然无法在 matlab 中创建可用的东西。
任务很简单。我有两个文件:devideHistory.logdeals.log 在这两个文件中,我们只考虑前两列。所以第一个文件包含应该形成图形的 X 和 Y。第二个文件包含应在图形上显示的标记的 X 和 Y。在这个社区的帮助下创建了这样的程序
clear
fDevide = fopen('devideHistory.log');
data = textscan(fDevide, '%f:%f:%f:%f %f,%f %f,%f');
fclose(fDevide);
% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';
flvec = [1 1e-16];
y = [data{5:6}] * flvec';
xindays = x / (24*60*60);
plot(xindays, y);
% set(gca, 'YTickLabel', get(gca,'YTick'))
% datetick('x', 'HH:MM:SS');
hold on
fDeals = fopen('deals.log');
data = textscan(fDeals, '%f:%f:%f:%f %f,%f %f,%f %f,%f %f');
fclose(fDeals);
% hh:min:sec:millisec
secvec = [60*60 60 1 1e-3];
x = [data{1:4}] * secvec';
flvec = [1 1e-16];
y = [data{5:6}] * flvec';
xindays = x / (24*60*60);
plot(xindays, y, 'go','MarkerSize',6,'LineWidth',3);
% i need to set enough precision on Y but this doesn't work because
% while zooming labels doesn't update
set(gca, 'YTickLabel', get(gca,'YTick'))
% i want to have "time" on X but this doesn't work because
% while zooming new labels doesn't appear
datetick('x', 'HH:MM:SS');
结果:
但是缩放功能有两个问题:
- 在从 X 放大标签时消失,因此 X 处根本没有标签how to always display "labels" on axis X
- Y 上的缩放标签未更新,因为结果标记显示在错误的位置why while zooming marker changes position?
嗯,我的任务非常简单明了。 matlab中是否有简单直接的解决方案?上面的代码已经包含了几个“hacks”,但仍然不能按预期工作。恐怕继续破解它没有意义。有人可以提出另一种方法吗?可能 matlab 不适合我的需要?
【问题讨论】:
-
您的标记显示正确,标签错误,直截了当!您有自定义标签的更新问题;用回调解决这个问题,或者用ticklabelformat 更简单地为你做这一切