gpt4 book ai didi

matlab - 为什么缩放标记会改变位置?

转载 作者:行者123 更新时间:2023-12-02 02:13:28 25 4
gpt4 key购买 nike

我在上面绘制图形和标记。但是我看到了奇怪的行为 - 标记在缩放时改变了它的位置。我创建了 video关于那个(请在观看时切换到全高清以便能够看到数字)

我的代码:

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);

源文件:devideHistory.log deals.log

问题是为什么标记会改变它的位置。我希望它始终处于同一位置(来自文件 deals.log)

最佳答案

因为你设置了y轴标签

set(gca, 'YTickLabel', get(gca,'YTick'))

当您现在开始缩放时,刻度本身会发生变化,但标签不会。您通过放大注意到这一点,同时观察 y 轴的范围没有改变。



我认为您打算对上述 yticklabel 否决做的是提高这些 ytick 标签的准确性。但是您忘记了让这些标签与实际值保持同步。

这个人:http://undocumentedmatlab.com/blog/setting-axes-tick-labels-format/已花费一些时间使用回调使其成为一个自动过程。

在文件交换中,同一个人有一个脚本可以为您自动完成:http://www.mathworks.com/matlabcentral/fileexchange/36254-ticklabelformat

所以你只需要调用

ticklabelformat(gca,'y','%.6g')

或者你想要的任何其他格式

关于matlab - 为什么缩放标记会改变位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11683119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com