创建具有不同轴值的水平和垂直线? (MatLab的)

时间:2013-07-17 15:04:05

标签: matlab graph plot

我试图在直方图上绘制水平和垂直线,这些线将精确地改变x和y轴上的限制。我使用了行(X,Y)函数,但找不到根据图形窗口的参数设置行的有用方法。

1 个答案:

答案 0 :(得分:1)

我不清楚你想要什么,但这是我认为你想要的最简单的答案:

制作样本直方图

y = randn(100,1);
hist(y,10)

获取x轴和y轴的当前限制

xlimits = get(gca, 'XLim');
ylimits = get(gca, 'YLim');

计算单个数值以绘制水平线。您需要将其替换为轴限制的特定功能

halfpt = ((ylimits(2)-ylimits(1))/2) + ylimits(1);
line(xlimits, [halfpt halfpt])

我不确定,但是从你的评论中我怀疑你没有以编程方式更改你的轴,而是说set(gca,'Xlim', [0 10])但是你想要能够拖动你的人物的轴鼠标,例如在图形编辑器中使用手/指针按钮。在这种情况下,一种解决方案是使您的图形成为GUI并编写一个回调函数来处理线图,该函数是xlimylim的函数。这是一个始终将线保持在轴中间的示例,无论它们如何被拖动:

function myGUI
figure('WindowButtonMotionFcn',@myCallback)
y = randn(100,1);
hist(y,10)

function myCallback(src,eventdata)
xlimits = get(gca, 'XLim');
ylimits = get(gca, 'YLim');
halfpt = ((ylimits(2)-ylimits(1))/2) + ylimits(1);

lh = findall(gcf,'Type','Line');
delete(lh);
myline = line(xlimits, [halfpt halfpt])

end

end