私はまだmatlabで使用できるものを作成できません。
タスクは非常に簡単です。2つのファイルがあります。devideHistory.logdeals.log両方 のファイルで、最初の2つの列のみを検討します。したがって、最初のファイルには、グラフィックを形成するXとYが含まれています。2番目のファイルには、グラフィックに表示する必要があるマーカーの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');
結果:
しかし、ズーム機能には2つの問題があります。
- Xからラベルを拡大している間、ラベルが消え、その結果、軸Xに常に「ラベル」を表示する方法がXにまったく表示されません。
- Yのズームラベルが更新されないのに、結果としてマーカーが間違った位置に表示されるのに、ズームマーカーの位置が変わるのはなぜですか?
さて、私の仕事はとてもシンプルで簡単です。それのためのmatlabのシンプルで簡単な解決策はありますか?上記のコードにはすでにいくつかの「ハック」が含まれていますが、それでも期待どおりに機能しません。ハッキングを続けるのは意味がありません。誰かが別のアプローチを提案できますか?おそらくmatlabは私のニーズにちょうど適していないのですか?