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)
并且输出:
我尝试在 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)
并且输出: