Change line type when figure handle is known
3 次查看(过去 30 天)
显示 更早的评论
I have created a plot in a figure window. I want to change the line type to circles.
I know the figure handle. Let's say it's gcf. Can I use this to modify the plot or line? I figure they are children of the figure so I should be able to use
set(gcf, child:plot, child:line, 'o')
... something along those lines. I'm a newbie. How should this look?
0 个评论
采纳的回答
Arnaud Miege
2011-5-10
Does that do what you want?
t = 0:0.1:10;
y = sin(t);
h = plot(t,y);
set(h,'Marker','o');
set(h,'LineStyle','none');
Arnaud
1 个评论
Arnaud Miege
2011-5-10
PS: you need the plot handle, not the figure handle:
h_fig = gcf;
h_axes = gca;
h_plot = get(h_axes,'Children')
更多回答(2 个)
Patrick Kalita
2011-5-10
Starting with a figure handle f, getting its Children property will most often return an axes handle a.
a = get(f, 'Children');
You can verify what it is by looking at a's Type property:
>> get(a, 'Type')
ans =
axes
So far so good. Now the line will be a child of the axes. So get the Children property of a ...
L = get(a, 'Children')
... and verify the Type:
>> get(L, 'Type')
ans =
line
Now you can set the Marker property of the line:
set(L, 'Marker', 'o')
This documentation page is a good reference which explains which objects can be children of other objects, and which properties objects have.
2 个评论
Patrick Kalita
2011-5-10
I should point out that Arnaud's answer is a better solution. It is always preferable to hold on to the handle that a function (like plot) returns, rather than diving through the 'Children' property of objects. This method should only be used when absolutely necessary (i.e. you use a function that doesn't return a handle).
Matt Fig
2011-5-10
You could also try this tool, which allows you to make arbitrary changes with a mouse-click:
The preview image shows the options available when you right click on a line.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Properties 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!