MATLAB Answers

Warning creating vertical line using xline

28 ビュー (過去 30 日間)
Matt
Matt 2019 年 12 月 7 日
Commented: Walter Roberson 2019 年 12 月 7 日
I ran into a warning when using the xline function. I went all the way back to running the simple code in the MATLAB help on xline and still get the same warning. Here's the code from help:
x = linspace(0,6,100);
y = exp(x);
plot(x,y)
xline(4.5,'-',{'Acceptable','Limit'});
The following warning appears:
Warning: Error updating ConstantLine.
Too many input arguments.
Warning: Error creating or updating CompositeMarker
Error in value of property Anchor
Array is null
Warning: An error occurred while drawing the scene: Cookie 0 does not refer to a node in the scene tree
The plot appears as the one in the MATLAB help, but the label on the vertical line is not drawn:
If I try to select the vertical line with the "Edit Plot" arrow, the warning is repeated in the command window and there is no visible indication I have selected the line. However, if I have the property inspector open, it shows I have the vertical line selected. I can also see the appropriate label in the property inspector for the vertical line. If I delete the label text in the property inspector, the selection indicators appear at each end of the line and the warning is no longer repeated in the command window. If I type a new label in the property inspector, the label appears at the plot origin and a warning again appears in the command window.
Warning: Error updating ConstantLine.
Too many input arguments.
Warning: Error creating or updating CompositeMarker
Error in value of property Anchor
Array is null
Obviously, the help example should not be causing this issue. Maybe my settings or preferences are causing the problem? I've closed and reopened MATLAB a few times thinking something could have gotten in a weird state, but that did not change anything. Any ideas about what might be happening?
Edit: I tried the same xline command without the label and it works without the warning. If I add a single line label, for example,
xline(4.5,'-','Limit');
it produces the same warning and behavior as the multi-line label in the example.
When trying to debug the error, I get into the internal MATLAB .m file xyzline.m. The warning appears after executing Line 85:
hcl.Parent = parentAxes;
Edit 2: The warning that is thrown does not come from xyzline.m. It is thrown by defaulterrorcallback.m. The id is "MATLAB:handle_graphics:Canvas:RenderingException" and the msg is "An error occurred while drawing the scene: Cookie 0 does not refer to a node in the scene tree." I wonder if there is something wrong with my graphics rendering settings.

  11 件のコメント

表示 8 件の古いコメント
Walter Roberson
Walter Roberson 2019 年 12 月 7 日
There is a graphics driver update available two years newer
Matt
Matt 2019 年 12 月 7 日
Do you think that might be the cause? I would have to go through IT to have them do the update. Does anything else jump out at you?
Walter Roberson
Walter Roberson 2019 年 12 月 7 日
Nothing jumps out, but I have seen people have problems with the Intel HD drivers that are more than 2 years old. It's worth trying.

サインイン to comment.

件の回答 (2)

Image Analyst
Image Analyst 2019 年 12 月 7 日
It worked for me. As an alternative, you might try the older line() and then use text() to place the text annotation.

  0 件のコメント

サインイン to comment.


Matt
Matt 2019 年 12 月 7 日
Being such a simple example, I imagine it will work for everyone. I did a number of google searches and did not see anyone discussing a similar issue.

  0 件のコメント

サインイン to comment.

サインイン してこの質問に回答します。

製品


リリース

R2018b

Translated by