MATLAB蜡烛图:图层顺序

时间:2015-04-21 12:47:20

标签: matlab plot candlestick-chart

我尝试在Matlab的蜡烛图上放置一个标记。 但是标记放在蜡烛下面,如果标记太小,则无法看到标记。

我尝试使用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;

如何让标记位于蜡烛前? marker is behind the canle body

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来解决此问题:

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)

输出:

enter image description here