Warning creating vertical line using xline
25 ビュー (過去 30 日間)
古いコメントを表示
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 件のコメント
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.
採用された回答
Matt
2020 年 1 月 24 日
2 件のコメント
Walter Roberson
2020 年 1 月 24 日
I tend to think of possible path problems, that you might be accidentally using a routine from a third-party toolbox. I would suggest experimenting with
restoredefaultpath
その他の回答 (2 件)
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Graphics Performance についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!