在Matlab中绘制图中的缩放区域

时间:2014-04-26 12:39:30

标签: matlab plot

我正在使用Matlab制作数字,我想知道是否有办法在整体数据的图形中绘制缩放区域?

我有一周内绘制的散布数据,x轴以小时为单位,我想放大前3个小时,并在主图中显示它们,x轴标签为分钟。

我到目前为止的绘图代码如下:

allvalsx = marabint(:,2)
allvalsy = marabint(:,5)
subvalsx = marabint(1:7,2);
subvalsy = marabint(1:7,2);
%% Plots the scatter chart.
sizemarker = 135
handle = scatter(allvalsx, allvalsy, sizemarker, '.')
figure(1)
axes('Position',[.2 .2 .2 .2])
handle2 = scatter(subvalsx, subvalsy, '.r')
title(plotTitle)
xlabel('Time since treatment (hours)')
ylabel('Contact angle (deg)')

% Axis scales x1, x2, y1, y2
axis([0, marabint(length(marabint),2) + 10, 0, 120]);

% This adds a red horizontal line indicating the untreated angle of the
% sample.
untreatedLine = line('XData', [0 marabint(length(marabint),2) + 10], 'YData', [untreatedAngle untreatedAngle], 'LineStyle', '-', ...
    'LineWidth', 1, 'Color','r');

% Adding a legend to the graph
legendInfo = horzcat('Untreated angle of ', untreatedString)
hleg1 = legend(untreatedLine, legendInfo);

% This encases the plot in a box
    a = gca;
    % set box property to off and remove background color
    set(a,'box','off','color','none')
    % create new, empty axes with box but without ticks
    b = axes('Position',get(a,'Position'),'box','on','xtick',[],'ytick',[]);
    % set original axes as active
    axes(a)
    % link axes in case of zooming
    linkaxes([a b])

set(gcf,'PaperUnits','inches');
set(gcf,'PaperSize', [8.267 5.25]);
set(gcf,'PaperPosition',[0 0.2625 8.267 4.75]);
set(gcf,'PaperPositionMode','Manual');
set(handle,'Marker','.');
print(gcf, '-dpdf', '-r150', horzcat('markertest4.pdf'));

这会产生以下enter image description here

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

是的,我想我知道你需要什么。试试这个:

zoomStart = 0;
zoomStop = 3;
set(gca, 'XLim', [zoomStart zoomStop])

如果这不符合你的需要,请告诉我,我会给你一个不同的方式。