is it a bug?

2 次查看(过去 30 天)
G A
G A 2019-9-11
评论: G A 2019-9-11
The code below
(i) does not produce an error message about not matching x and y; it can be explained by implicit expansion in plot();
(ii) produces 100 legends; this I cannot explain.
x=1:100;
y=1;
plot(x,y,'DisplayName','a bug'),
legend('-DynamicLegend'),

采纳的回答

Steven Lord
Steven Lord 2019-9-11
If you call plot with an output argument to return handles to any lines that are created, you'll see that 100 individual lines get created, one per point.
x=1:100;
y=1;
h = plot(x,y,'DisplayName','a bug');
size(h)
That's also why your legend has 100 entries, one per line that plot created.
If you're using release R2018b or later and you want to display a horizontal line stretching the whole width of the axes, use yline.
  3 个评论
Steven Lord
Steven Lord 2019-9-11
I'm not completely sure I understand what you're asking in your first sentence. If you want to know how to use yline with the DisplayName property, that's easy.
axis([1 10 1 10]);
xline(7, 'DisplayName', 'x = 7', 'Color', 'r');
yline(pi, 'DisplayName', 'y = pi', 'Color', 'k');
legend show
Or do you want a line with markers at certain x values and/or only spanning part of the axes? If so yline isn't the right tool for that job. For that you would do what you described:
x = 1:10;
y = ones(size(x));
h = plot(x, y, ':d', 'DisplayName', 'Dotted line with diamonds');
legend show
G A
G A 2019-9-11
Sorry for my English. In the first sentence I was asking the following:
xlim([x(1) x(end)]);
yline(pi, 'DisplayName', 'y = pi', 'Color', 'k');
legend show
y-axis is defined automatically.

请先登录,再进行评论。

更多回答(1 个)

Bruno Luong
Bruno Luong 2019-9-11
编辑:Bruno Luong 2019-9-11
No it's not a bug: from PLOT doc
  • If one of X or Y is a scalar and the other is either a scalar or a vector, then the plot function plots discrete points. However, to see the points you must specify a marker symbol, for example, plot(X,Y,'o').
You get really 100 points plotted.

类别

Help CenterFile Exchange 中查找有关 Legend 的更多信息

产品


版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by