如何在地块上的一个特定点上设置一个标记(请看图)?
8.679次浏览(过去30天)
显示旧的注释
接受的答案
米金
2014年2月27日
编辑:MathWorks支金宝app援小组
2021年3月16日
本杰明,添加
持有在
情节(x_pos y_pos,的r *)
你的代码。
(x_pos y_pos)
是需要标记的数据点。所以如果你有
X = 0:0.1:圆周率;
Y = sinx;
你可以用
情节(x, y)
持有在
情节(x (10), y (10),的r *)%表示x和y的第10个数据点
另外,
从R2016b开始,你可以
指定
的
MarkerIndices
财产
用
马克
r
S在特定数据点上
。
例如,在10处画一条线
th
数据点。
X = 0:0.1:圆周率;
Y = sinx;
P = plot(x,y,“啊——”,“MarkerIndices”, 10)
您还可以指定标记属性,例如表面颜色和边缘颜色。
P = plot(x,y,“啊——”,“MarkerFaceColor”,“红色”,“MarkerEdgeColor”,“红色”,“MarkerIndices”, 10)
更多答案(2)
格雷格
2017年12月6日
编辑:格雷格
2017年12月6日
一个月就有7000万的浏览量,我很惊讶这个帖子竟然没有更新。
从R2016b开始,有一个
MarkerIndices
财产。而不是另一个答案:
情节(x, y);
持有在;
情节(x (10), y (10),的r *);
现在只需使用:
H = plot(x,y,“MarkerIndices”10);
如果您已经存储了手柄,可以随时移动标记
h
:
h.MarkerIndices = 5:5:长度(x);
1评论
MathWorks支金宝app援小组
2018年11月27日
此外,您还可以指定' o- '线样式,它将创建实线和标记。您还可以指定标记属性,例如表面颜色和边缘颜色。
X = linspace(0,pi,30);
Y = sinx;
P = plot(x,y,“啊——”,“MarkerFaceColor”,“红色”,“MarkerEdgeColor”,“红色”,“MarkerIndices”, 10)
纳克
2017年1月9日
你好,这个在图中标记是可以不写代码的吗,在图形编辑器中把标记放在图中,
对于中线曲线,我只有x数据,没有y数据,但我需要在曲线上标记,这意味着我将给出x值,根据x值,它应该完全放在中线曲线上,
1评论
沃尔特·罗伯森
2017年1月9日
用于标记给定x的特定位置,那么
x_to_mark = SomeSpecificXValue;
All_lines = findobj(gca,“类型”,“行”);
Number_of_marks = 0;
Where_to_mark = [];
为K = 1: length(all_lines)
this_line = all_lines(K);
This_xdata = get(this_line,“XData”);
如果X_to_mark < min(this_xdata) | X_to_mark > max(this_xdata)
继续;%这条直线不张成x
结束
X_diff = diff(this_xdata);
如果isempty (x_diff)
流('跳过单点\n的行#%d '、K);
elseif| All (x_diff < 0)
它是单调的,做插值是安全的
This_ydata = get(this_line,“YData”);
Y_to_mark = interp1(this_xdata, this_ydata, x_to_mark);
Number_of_marks = Number_of_marks + 1;
Where_to_mark (number_of_marks,:) = [x_to_mark, y_to_mark];
其他的
流(用未排序的x数据\n跳过行#%d、K);
结束
结束
如果Number_of_marks == 0
流(' x不在我们可以处理的行中');
其他的
持有在
情节(where_to_mark (: 1) where_to_mark (:, 2),的r *);
结束
这可能比你想象的要长得多。你提供的信息我们可能会用来缩短它。例如,如果您知道只有一行,并且在绘制时对x进行了排序,并且要标记的x值肯定在范围内,那么代码可以变得更短。