Change length of legend line sample?

  • Follow


Is there any way in MATLAB to reduce the length of the line sample, as it is with i.e. Gnuplot (set key samplen 'sample length')?

When I search in the product help I find examples for changing almost everything else, but can't find anything about this.
0
Reply drgz 3/12/2010 9:54:05 AM

drgz wrote:
> Is there any way in MATLAB to reduce the length of the line sample, as 
> it is with i.e. Gnuplot (set key samplen 'sample length')?
> 
> When I search in the product help I find examples for changing almost 
> everything else, but can't find anything about this.

Yes, it is _possible_ to change it, but there probably is no special 
control for the length (I could figure out if there is, but it's 4 am 
and I have to sleep.)

Legends in matlab are implemented by adding a second axis to the figure. 
The lines and text are then placed within that axis. Find that second 
axis and you can find its child line objects, and you can then change 
their XData properties to change the length and positions of the lines. 
Or more simply, make the axis smaller by changing its Position 
properties, and then set the XLim property of the axis so that the 
left-hand side of the lines are cut off. Saves you altering the 
individual lines, and if you were wanting the lines shorter you were 
probably wanting to change the axis Position anyhow (either because you 
wanted a smaller legend box or because you wanted longer titles and it 
would be a nuisance to also change the Position properties of all of the 
text() objects to match a shorter line length...)
0
Reply Walter 3/12/2010 10:06:57 AM


By the way, I am using Matlab 7, so you had better check if it is really the second element of linesInPlot, that is if the handle is given by linesInPlot(2).


"drgz " <syrehue@hotmail.com> wrote in message <hnd2vt$6r$1@fred.mathworks.com>...
> Is there any way in MATLAB to reduce the length of the line sample, as it is with i.e. Gnuplot (set key samplen 'sample length')?
> 
> When I search in the product help I find examples for changing almost everything else, but can't find anything about this.
0
Reply Sadik 3/12/2010 12:03:05 PM

I am sorry, it seems that my message did not show up for some reason. I am writing again:

An example:

plot(1:10)
legend('a')
linesInPlot = findobj('type','line'); % linesInPlot(2) is the handle to that line
get(linesInPlot(2),'XData') % returns 0.1231    0.7385
set(linesInPlot(2),'XData',[0.1231 0.4]) % so that new length < 0.5*previous

Best.




"Sadik " <sadik.hava@gmail.com> wrote in message <hndahp$3ij$1@fred.mathworks.com>...
> By the way, I am using Matlab 7, so you had better check if it is really the second element of linesInPlot, that is if the handle is given by linesInPlot(2).
> 
> 
> "drgz " <syrehue@hotmail.com> wrote in message <hnd2vt$6r$1@fred.mathworks.com>...
> > Is there any way in MATLAB to reduce the length of the line sample, as it is with i.e. Gnuplot (set key samplen 'sample length')?
> > 
> > When I search in the product help I find examples for changing almost everything else, but can't find anything about this.
0
Reply Sadik 3/12/2010 12:09:05 PM

"drgz " <syrehue@hotmail.com> wrote in message <hnd2vt$6r$1@fred.mathworks.com>...
> Is there any way in MATLAB to reduce the length of the line sample, as it is with i.e. Gnuplot (set key samplen 'sample length')?
> 
> When I search in the product help I find examples for changing almost everything else, but can't find anything about this.

Thanks a lot to both of you! Hopefully there will an easier way of doing this in the future ;)

Greets!
0
Reply drgz 3/12/2010 5:27:05 PM

4 Replies
923 Views

(page loaded in 0.056 seconds)

Similiar Articles:













7/21/2012 8:40:11 PM


Reply: