Hi Chao, I spent some time to figure out why I cannot replace ax1.hist() with ax1.scatter(). It seems hist() returns list of 'Rectangle' (sadly if there is just one, it does return just the 'Rectangle' (not wrapped in a list) ... somewhere a trick
a = [a, ] is likely needed. Anyway, my problem is that scatter() returns 'PathCollection' object, whatever that is. How can I grab handles to individual legend items to move them under ax2 like in your hist-plot example? Thank you for your help, Martin ChaoYue wrote: > Dear Martin, > > I worked out a similar example for your reference as I don't catch your > example very well. > > fig = plt.figure() > > ax1 = fig.add_subplot(211) > > ax2 = fig.add_subplot(212) > > arrlist = [np.random.normal(size=100) for i in range(50)] > > ret = ax1.hist(arrlist,histtype='barstacked') > > reclist = [patchlist[0] for patchlist in ret[2]] > > labellist = ['data'+str(i) for i in range(50)] > > ax2.legend(reclist,labellist,loc='upper > left',bbox_to_anchor=(0,0,1,1),borderaxespad=0.,ncol=5,mode='expand') > ax2.set_frame_on(False) > > ax2.tick_params(bottom='off',left='off',right='off',top='off') > > plt.setp(ax2.get_yticklabels(),visible=False) > > plt.setp(ax2.get_xticklabels(),visible=False) > > > you're asking some object-oriented way, I personally don't think using pylab > and set_tight_layout are the good way > to be "object-oriented" as pylab is only a bounding wrapper by my > understanding (maybe I am wrong!). legend and > hist are all matplotlib.axes.Axes method. > > Also, I think it's unrealistic to ask the figure do a nice job for you if > there are 50 legned handlers and you want to show > them in 2 columns with a very high width/height ratio of the figure.... > > hope it could be of a bit help, > > cheers, > > Chao > > > On Mon, May 20, 2013 at 6:43 PM, Martin Mokrejs [via matplotlib] <[hidden > email] </user/SendEmail.jtp?type=node&node=41102&i=0>> wrote: > > Hi Ben, > > Benjamin Root wrote: > > > > > > > > > On Mon, May 20, 2013 at 12:02 PM, Martin Mokrejs <[hidden email] > <http://user/SendEmail.jtp?type=node&node=41090&i=0> <mailto:[hidden email] > <http://user/SendEmail.jtp?type=node&node=41090&i=1>>> wrote: > > > > Hi, > > I am having trouble to get space allocated for a long legend text, > > lets say spanning 2/3 - 3/4 of the whole output. I would like to > have > > stacked barchart as 1st subplot and the place of remaining 3 > subplots > > to be actually allocated by the legend. Alternatively, could I get > the > > legend saved into a separate figure? > > > > Or could the space for legend text be allocated automatically > minimizing > > output figure size? For example, the width would be 1120px while > height > > be multiples of 840px (840 for each subplot)? > > > > Attached is a quick example. It shows also that I tried > tight_layout() > > but wasn't successful with this either. I would be glad for some > help, > > ideally converting the whole thing into an object-oriented approach. > > I am generating several figures in a row and would like to > clear()/del() > > any previously used data ASAP. > > > > > > Thank you, > > Martin > > Am using mpl-1.2.2 > > > > > > Try "fig.savefig('foobar.png', bbox_inches='tight')" when saving the > > image. It will make the figure size such that all the visible > > elements of the figure will fit into the saved output. tight_layout() > > is meant to make sure the elements don't overlap each other, but does > > nothing about making sure nothing gets clipped. > Ah, would be nice to make this clear in the docs. So far was doing > > > import pylab > F = pylab.gcf() > F.set_tight_layout(True) > > which as you say does not help the way I thought. > > > Unfortunately, while > > fig.savefig('foobar.png', bbox_inches='tight') > > helped to get everything into the .png file (attached), the barchart > itself > should span according to the code I posted just 1/2 of the figure. But > somehow > it is enlarged and rescaled so that it occupies *more than* 1/2 of the > figure. > What in pylab is resizing my image? Note: the final image is 625x1075. > > Martin > > > ------------------------------------------------------------------------------ > AlienVault Unified Security Management (USM) platform delivers complete > security visibility with the essential security capabilities. Easily and > efficiently configure, manage, and operate all of your security controls > from a single console and one unified framework. Download a free trial. > http://p.sf.net/sfu/alienvault_d2d > _______________________________________________ > Matplotlib-users mailing list > [hidden email] <http://user/SendEmail.jtp?type=node&node=41090&i=2> > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > *foobar.png* (132K) Download Attachment > <http://matplotlib.1069221.n5.nabble.com/attachment/41090/0/foobar.png> > > > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://matplotlib.1069221.n5.nabble.com/Making-space-for-a-long-legend-outside-of-a-barchart-tp41088p41090.html > To start a new topic under matplotlib - users, email [hidden email] > </user/SendEmail.jtp?type=node&node=41102&i=1> > To unsubscribe from matplotlib, click here. > NAML > <http://matplotlib.1069221.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml> > > > > > > -- > *********************************************************************************** > Chao YUE > Laboratoire des Sciences du Climat et de l'Environnement (LSCE-IPSL) > UMR 1572 CEA-CNRS-UVSQ > Batiment 712 - Pe 119 > 91191 GIF Sur YVETTE Cedex > Tel: (33) 01 69 08 29 02; Fax:01.69.08.77.16 > ************************************************************************************ > > ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ > View this message in context: Re: Making space for a long legend outside of a > barchart > <http://matplotlib.1069221.n5.nabble.com/Making-space-for-a-long-legend-outside-of-a-barchart-tp41088p41102.html> > Sent from the matplotlib - users mailing list archive > <http://matplotlib.1069221.n5.nabble.com/matplotlib-users-f3.html> at > Nabble.com. > > > ------------------------------------------------------------------------------ > Try New Relic Now & We'll Send You this Cool Shirt > New Relic is the only SaaS-based application performance monitoring service > that delivers powerful full stack analytics. Optimize and monitor your > browser, app, & servers with just a few lines of code. Try New Relic > and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may > > > > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users