Matlab 带有透明度和时间戳索引的修补程序会打断图形

Matlab 带有透明度和时间戳索引的修补程序会打断图形,matlab,transparency,area,Matlab,Transparency,Area,我很难在透明度和时间戳索引在datenum范围735k内变化的图形上绘制补丁,这或多或少是您将为实际日期获取的datenum 以下示例说明了我的问题: k=[735172.912437674 735172.941375799 0 7830]; figure; axis(k); p=patch([k(1) k(1) k(2) k(2)], [k(3) k(4) k(4) k(3)],[0 0 0 0],'r', 'FaceAlpha', 0.1); 你能复制这个错误吗?有什么建议吗?我已经看过

我很难在透明度和时间戳索引在datenum范围735k内变化的图形上绘制补丁,这或多或少是您将为实际日期获取的datenum

以下示例说明了我的问题:

k=[735172.912437674 735172.941375799 0 7830];
figure;
axis(k);
p=patch([k(1) k(1) k(2) k(2)], [k(3) k(4) k(4) k(3)],[0 0 0 0],'r', 'FaceAlpha', 0.1);

你能复制这个错误吗?有什么建议吗?我已经看过了,也找过了,但是没有线索。我不想从我的时间戳中删除最小值,因为这个x,我不得不修改所有代码(

我了解到了这一点,他们引导我研究了一些最终可能出现的问题-看起来像是试图发现金融业务的趋势,猜测什么时候会出现,如果会的话哈哈。它可以通过在matlab发布时添加
-hgVersion2
选项来使用。这样做,产生的数字看起来像这样\o/:

很好……但请注意,HG1和HG2在使用上存在一些差异,这可能导致代码无法正常工作(特别是在使用侦听器的情况下),但如果您想探索这段更未记录的代码,请在代码中添加一个if,以防代码中断:

if feature('UseHG2')
  % HG2 approach
else
  % HG1 approach
end

一件好事是,至少我们可以从句柄中获取数据,这样我们可以更容易地探索它们(x),并且使用matlab oop开发方式的使用更加直观。

有趣……openGL的有限精度问题?
k=[35172.912437674 35172.941375799 0 7830];
不会引起问题…@TryHard我认为openGL不支持它,因为mac不支持它,这是另外一回事。但我设法找到了一个解决方法\o/。当使用
linesmoothing
设置为on时,绘制线时也会发生这种情况:
设置(0,'defaultlinesmoothing','on')
设置(0,'DefaultPatchLineSmoothing','on')
我确信这是一个有限精度(舍入)可能在matlab调用渲染器之前,在管道中的某个地方出现问题。我将保持此线程打开,如果有人知道另一个不使用HG2的解决方案,那将非常受欢迎!顺便说一句,是的,仅仅因为这一点而改为HG2并不是什么好事,但一个很好的动机是您的图形变得更漂亮,更可定制…