如何在直线延伸至 X/Y 轴的 MatLab 绘图上创建数据标记?
How to Create Data Markers on a MatLab Plot That Have Lines Extending to X/Y Axis?
我正在尝试在 MatLab 中创建一个指定函数的绘图,该函数具有特定的数据标记,这些标记具有指向 X/Y 轴的下拉线(最好是虚线),对应于该特定标记。
下面是我的绘图和标记的 MatLab 代码:
x = 0:4000;
y = 1 - exp(-(power(((x-900)/1015.54),2)));
xmarkers = [1800,2000];
ymarkers = 1 - exp(-(power(((xmarkers-900)/1015.54),2)));
plot(x,y,'b',xmarkers,ymarkers,'b*');
这导致以下情节:
我设想了这样一个图表,最好在行的末尾为指定的 X/Y 值对添加自动标签:
我的核心问题是:这可能吗?如果是这样,人们将如何编码呢?我知道我可以通过自己在绘图中添加线条来手动管理它,但这对于大量标记是不可行的。
您可以定义一个绘制标记的函数:
function draw_marker(x, y)
hold on
plot(x, y, 'b*')
% plot coordinates as text
str = sprintf('(%d, %d)', x, y);
text(x, y, str)
plot([0, x], [y, y], 'k-.')
plot([x, x], [0, y], 'k-.')
end
然后你可以像这样创建你的情节:
plot(x,y,'b');
draw_marker(xmarkers(1), ymarkers(1))
draw_marker(xmarkers(2), ymarkers(2))
当然,如果您将图形句柄作为参数传递会更好,但上面的方法有效。
我正在尝试在 MatLab 中创建一个指定函数的绘图,该函数具有特定的数据标记,这些标记具有指向 X/Y 轴的下拉线(最好是虚线),对应于该特定标记。
下面是我的绘图和标记的 MatLab 代码:
x = 0:4000;
y = 1 - exp(-(power(((x-900)/1015.54),2)));
xmarkers = [1800,2000];
ymarkers = 1 - exp(-(power(((xmarkers-900)/1015.54),2)));
plot(x,y,'b',xmarkers,ymarkers,'b*');
这导致以下情节:
我设想了这样一个图表,最好在行的末尾为指定的 X/Y 值对添加自动标签:
我的核心问题是:这可能吗?如果是这样,人们将如何编码呢?我知道我可以通过自己在绘图中添加线条来手动管理它,但这对于大量标记是不可行的。
您可以定义一个绘制标记的函数:
function draw_marker(x, y)
hold on
plot(x, y, 'b*')
% plot coordinates as text
str = sprintf('(%d, %d)', x, y);
text(x, y, str)
plot([0, x], [y, y], 'k-.')
plot([x, x], [0, y], 'k-.')
end
然后你可以像这样创建你的情节:
plot(x,y,'b');
draw_marker(xmarkers(1), ymarkers(1))
draw_marker(xmarkers(2), ymarkers(2))
当然,如果您将图形句柄作为参数传递会更好,但上面的方法有效。