MATLAB 蜡烛图:层顺序

MATLAB candles plot: layers order

我尝试在 Matlab 的蜡烛图上放置一个标记。 但是marker是放在蜡烛下面的,marker太小是看不到的。

我尝试使用 uistack 重新排序图层,但标记仍然位于蜡烛体后面。

load disney;
candle(dis_HIGH(end-20:end), dis_LOW(end-20:end), dis_CLOSE(end-20:end),...
dis_OPEN(end-20:end), 'b');
hold on;
markers = plot(2,20.4,'r^','MarkerFaceColor','r', 'MarkerSize',15);
uistack(markers,'top');
hold off;

如何让标记在蜡烛的前面?

您可以通过执行以下操作来避免此问题:

1) 在与现有透明轴相同的位置添加一个新的透明轴。

2) 将其 NextPlot 属性 设置为 add.

3) 调整其范围以适应蜡烛图生成的轴的范围。

所以在代码中看起来像这样:

全部清除

clc
close all

load disney;

candle(dis_HIGH(end-20:end), dis_LOW(end-20:end), dis_CLOSE(end-20:end),...
dis_OPEN(end-20:end), 'b');
%//======================

%// Get current axes
Axes1 = gca;

%// Get the current limits
Axes1XLim = get(gca,'XLim');
Axes1YLim = get(gca,'YLim');

%// Create new axes
hold on
NewAxes = axes('Position',get(gca,'Position'),'Color','none','XTick',get(Axes1,'XTick'),'YTick',get(Axes1,'YTick'),'NextPlot','add')

%// Plot your data on new axes
m = plot(NewAxes,2,20.4,'r^','MarkerFaceColor','r', 'MarkerSize',15);

%// Adjust its limits
xlim(Axes1XLim)
ylim(Axes1YLim)

并且输出: