From: Chris Rodgers <chris.rodgers@be...>  20110505 19:59:42
Attachments:
output.png

Hi Whenever I create figures with at least 3x3 subplots, the xtick labels overlap with each other and they also overlap with the title of the adjacent subplot, rendering the entire figure illegible. I know that I can finetune the plot to look exactly the way I want with "wspace" and "hspace" for instance, but I don't understand why this is the default behavior. I wonder if I have a system font issue, such that matplotlib thinks the fonts are smaller than they really are. My questions: 1) Is this the intended behavior of matplotlib, or is there something wrong with my installation? 2) Assuming I don't have an installation issue, is there a very general parameter I can change so that the overlap doesn't occur, rather than manually adjusting every figure? Minimal code to reproduce the problem: import numpy as np import matplotlib.pyplot as plt plt.figure() plt.subplot(331) plt.subplot(334) plt.plot(np.arange(10000)) plt.title('Title') plt.show() I'm attaching the output figure, although I'm not sure if the list accepts attachments. The xtick labels on subplot 334 overlap each other, and the title of subplot 334 overlaps with the xtick labels in subplot 331. System: Ubuntu 10.04 x64 All packages are the stable versions from Synaptic, including ipython, python, numpy, matplotlib 0.99.1.1 I've also tried the Enthought distribution with matplotlib 1.0.1 and the results are the same I've tried both "Wx" and "Tk" backends and the results are the same I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and this does make the labels smaller, but for sufficiently large numbers the overlap still occurs. Thanks for any help! Chris 
From: Chris Rodgers <chris.rodgers@be...>  20110505 19:59:42
Attachments:
output.png

Hi Whenever I create figures with at least 3x3 subplots, the xtick labels overlap with each other and they also overlap with the title of the adjacent subplot, rendering the entire figure illegible. I know that I can finetune the plot to look exactly the way I want with "wspace" and "hspace" for instance, but I don't understand why this is the default behavior. I wonder if I have a system font issue, such that matplotlib thinks the fonts are smaller than they really are. My questions: 1) Is this the intended behavior of matplotlib, or is there something wrong with my installation? 2) Assuming I don't have an installation issue, is there a very general parameter I can change so that the overlap doesn't occur, rather than manually adjusting every figure? Minimal code to reproduce the problem: import numpy as np import matplotlib.pyplot as plt plt.figure() plt.subplot(331) plt.subplot(334) plt.plot(np.arange(10000)) plt.title('Title') plt.show() I'm attaching the output figure, although I'm not sure if the list accepts attachments. The xtick labels on subplot 334 overlap each other, and the title of subplot 334 overlaps with the xtick labels in subplot 331. System: Ubuntu 10.04 x64 All packages are the stable versions from Synaptic, including ipython, python, numpy, matplotlib 0.99.1.1 I've also tried the Enthought distribution with matplotlib 1.0.1 and the results are the same I've tried both "Wx" and "Tk" backends and the results are the same I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and this does make the labels smaller, but for sufficiently large numbers the overlap still occurs. Thanks for any help! Chris 
From: Chris Rodgers <xrodgers@gm...>  20110505 19:54:33
Attachments:
output.png

Hi Whenever I create figures with at least 3x3 subplots, the xtick labels overlap with each other and they also overlap with the title of the adjacent subplot, rendering the entire figure illegible. I know that I can finetune the plot to look exactly the way I want with "wspace" and "hspace" for instance, but I don't understand why this is the default behavior. I wonder if I have a system font issue, such that matplotlib thinks the fonts are smaller than they really are. My questions: 1) Is this the intended behavior of matplotlib, or is there something wrong with my installation? 2) Assuming I don't have an installation issue, is there a very general parameter I can change so that the overlap doesn't occur, rather than manually adjusting every figure? Minimal code to reproduce the problem: import numpy as np import matplotlib.pyplot as plt plt.figure() plt.subplot(331) plt.subplot(334) plt.plot(np.arange(10000)) plt.title('Title') plt.show() I'm attaching the output figure, although I'm not sure if the list accepts attachments. The xtick labels on subplot 334 overlap each other, and the title of subplot 334 overlaps with the xtick labels in subplot 331. System: Ubuntu 10.04 x64 All packages are the stable versions from Synaptic, including ipython, python, numpy, matplotlib 0.99.1.1 I've also tried the Enthought distribution with matplotlib 1.0.1 and the results are the same I've tried both "Wx" and "Tk" backends and the results are the same I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and this does make the labels smaller, but for sufficiently large numbers the overlap still occurs. Thanks for any help! Chris 
From: jeffsp <jeffsp@gm...>  20120104 18:14:23

I have been wondering the same thing. Matlab is able to prevent labels from overlapping each other. Why can't matplotlib? Chris Rodgers7 wrote: > > Hi > > Whenever I create figures with at least 3x3 subplots, the xtick > labels overlap with each other and they also overlap with the title of > the adjacent subplot, rendering the entire figure illegible. I know > that I can finetune the plot to look exactly the way I want with > "wspace" and "hspace" for instance, but I don't understand why this is > the default behavior. I wonder if I have a system font issue, such > that matplotlib thinks the fonts are smaller than they really are. > > My questions: > 1) Is this the intended behavior of matplotlib, or is there something > wrong with my installation? > 2) Assuming I don't have an installation issue, is there a very > general parameter I can change so that the overlap doesn't occur, > rather than manually adjusting every figure? > > > Minimal code to reproduce the problem: > > import numpy as np > import matplotlib.pyplot as plt > plt.figure() > plt.subplot(331) > plt.subplot(334) > plt.plot(np.arange(10000)) > plt.title('Title') > plt.show() > > > I'm attaching the output figure, although I'm not sure if the list > accepts attachments. The xtick labels on subplot 334 overlap each > other, and the title of subplot 334 overlaps with the xtick labels in > subplot 331. > > > System: > Ubuntu 10.04 x64 > All packages are the stable versions from Synaptic, including ipython, > python, numpy, matplotlib 0.99.1.1 > I've also tried the Enthought distribution with matplotlib 1.0.1 and > the results are the same > I've tried both "Wx" and "Tk" backends and the results are the same > I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and > this does make the labels smaller, but for sufficiently large numbers > the overlap still occurs. > > Thanks for any help! > Chris > > >  > WhatsUp Gold  Download Free Network Management Software > The most intuitive, comprehensive, and costeffective network > management toolset available today. Delivers lowest initial > acquisition cost and overall TCO of any competing solution. > http://p.sf.net/sfu/whatsupgoldsd > _______________________________________________ > Matplotlibusers mailing list > Matplotlibusers@... > https://lists.sourceforge.net/lists/listinfo/matplotlibusers > >  View this message in context: http://old.nabble.com/Subplotxticklabelsoverlapwitheachotherandwithtitlestp31560643p33080989.html Sent from the matplotlib  users mailing list archive at Nabble.com. 
From: Tony Yu <tsyu80@gm...>  20120104 18:21:46
Attachments:
Message as HTML

On Wed, Jan 4, 2012 at 1:14 PM, jeffsp <jeffsp@...> wrote: > > I have been wondering the same thing. Matlab is able to prevent labels > from > overlapping each other. Why can't matplotlib? > > > Chris Rodgers7 wrote: > > > > Hi > > > > Whenever I create figures with at least 3x3 subplots, the xtick > > labels overlap with each other and they also overlap with the title of > > the adjacent subplot, rendering the entire figure illegible. I know > > that I can finetune the plot to look exactly the way I want with > > "wspace" and "hspace" for instance, but I don't understand why this is > > the default behavior. I wonder if I have a system font issue, such > > that matplotlib thinks the fonts are smaller than they really are. > > > > My questions: > > 1) Is this the intended behavior of matplotlib, or is there something > > wrong with my installation? > > 2) Assuming I don't have an installation issue, is there a very > > general parameter I can change so that the overlap doesn't occur, > > rather than manually adjusting every figure? > > > > > > Minimal code to reproduce the problem: > > > > import numpy as np > > import matplotlib.pyplot as plt > > plt.figure() > > plt.subplot(331) > > plt.subplot(334) > > plt.plot(np.arange(10000)) > > plt.title('Title') > > plt.show() > > > > > > I'm attaching the output figure, although I'm not sure if the list > > accepts attachments. The xtick labels on subplot 334 overlap each > > other, and the title of subplot 334 overlaps with the xtick labels in > > subplot 331. > Have you try calling `plt.tight_layout()` right before `plt.show()`? Tony > > > > System: > > Ubuntu 10.04 x64 > > All packages are the stable versions from Synaptic, including ipython, > > python, numpy, matplotlib 0.99.1.1 > > I've also tried the Enthought distribution with matplotlib 1.0.1 and > > the results are the same > > I've tried both "Wx" and "Tk" backends and the results are the same > > I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and > > this does make the labels smaller, but for sufficiently large numbers > > the overlap still occurs. > > > > Thanks for any help! > > Chris > > 
From: jeffsp <jeffsp@gm...>  20120104 18:53:39

plt.tight_layout(), sweet it still makes the labels too close to read, even if they don't overlap. that is, they're just a continuous string of numbers with no whitespace between. it does clean up the rest of the plot really nicely, though, without having to continually dick around with subplots_adjust Tony Yu3 wrote: > > On Wed, Jan 4, 2012 at 1:14 PM, jeffsp <jeffsp@...> wrote: > >> >> I have been wondering the same thing. Matlab is able to prevent labels >> from >> overlapping each other. Why can't matplotlib? >> >> >> Chris Rodgers7 wrote: >> > >> > Hi >> > >> > Whenever I create figures with at least 3x3 subplots, the xtick >> > labels overlap with each other and they also overlap with the title of >> > the adjacent subplot, rendering the entire figure illegible. I know >> > that I can finetune the plot to look exactly the way I want with >> > "wspace" and "hspace" for instance, but I don't understand why this is >> > the default behavior. I wonder if I have a system font issue, such >> > that matplotlib thinks the fonts are smaller than they really are. >> > >> > My questions: >> > 1) Is this the intended behavior of matplotlib, or is there something >> > wrong with my installation? >> > 2) Assuming I don't have an installation issue, is there a very >> > general parameter I can change so that the overlap doesn't occur, >> > rather than manually adjusting every figure? >> > >> > >> > Minimal code to reproduce the problem: >> > >> > import numpy as np >> > import matplotlib.pyplot as plt >> > plt.figure() >> > plt.subplot(331) >> > plt.subplot(334) >> > plt.plot(np.arange(10000)) >> > plt.title('Title') >> > plt.show() >> > >> > >> > I'm attaching the output figure, although I'm not sure if the list >> > accepts attachments. The xtick labels on subplot 334 overlap each >> > other, and the title of subplot 334 overlaps with the xtick labels in >> > subplot 331. >> > > Have you try calling `plt.tight_layout()` right before `plt.show()`? > > Tony > >> > >> > System: >> > Ubuntu 10.04 x64 >> > All packages are the stable versions from Synaptic, including ipython, >> > python, numpy, matplotlib 0.99.1.1 >> > I've also tried the Enthought distribution with matplotlib 1.0.1 and >> > the results are the same >> > I've tried both "Wx" and "Tk" backends and the results are the same >> > I've tried `matplotlib.rcParams['xtick.labelsize'] = 'xsmall'`, and >> > this does make the labels smaller, but for sufficiently large numbers >> > the overlap still occurs. >> > >> > Thanks for any help! >> > Chris >> >> > >  > Ridiculously easy VDI. With Citrix VDIinaBox, you don't need a complex > infrastructure or vast IT resources to deliver seamless, secure access to > virtual desktops. With this allinone solution, easily deploy virtual > desktops for less than the cost of PCs and save 60% on VDI infrastructure > costs. Try it free! http://p.sf.net/sfu/CitrixVDIinabox > _______________________________________________ > Matplotlibusers mailing list > Matplotlibusers@... > https://lists.sourceforge.net/lists/listinfo/matplotlibusers > >  View this message in context: http://old.nabble.com/Subplotxticklabelsoverlapwitheachotherandwithtitlestp31560643p33081289.html Sent from the matplotlib  users mailing list archive at Nabble.com. 
From: Benjamin Root <ben.root@ou...>  20120104 19:19:38
Attachments:
Message as HTML

On Wednesday, January 4, 2012, jeffsp <jeffsp@...> wrote: > > plt.tight_layout(), sweet > > it still makes the labels too close to read, even if they don't overlap. > that is, they're just a continuous string of numbers with no whitespace > between. > > it does clean up the rest of the plot really nicely, though, without having > to continually dick around with subplots_adjust > > Well, it is a new feature with plenty of room for improvements. Maybe some sort of mindist parameter would be useful to establish a minimum distance between text objects? Ben Root 
From: C M <cmpython@gm...>  20120130 03:10:33
Attachments:
Message as HTML

On Wed, Jan 4, 2012 at 2:19 PM, Benjamin Root <ben.root@...> wrote: > > > On Wednesday, January 4, 2012, jeffsp <jeffsp@...> wrote: > > > > plt.tight_layout(), sweet > > > > it still makes the labels too close to read, even if they don't overlap. > > that is, they're just a continuous string of numbers with no whitespace > > between. > > > > it does clean up the rest of the plot really nicely, though, without > having > > to continually dick around with subplots_adjust > > > > > > Well, it is a new feature with plenty of room for improvements. Maybe > some sort of mindist parameter would be useful to establish a minimum > distance between text objects? > > Ben Root > > Something like that sounds good. If there were a way to make it the default that labels would never overlap (but that default could be toggled for those who, somehow, want to not be able to read their labels?), that strikes me as best. In the meantime, what are other ways to do this? 
From: Tony Yu <tsyu80@gm...>  20120131 01:58:53
Attachments:
Message as HTML

On Sun, Jan 29, 2012 at 10:10 PM, C M <cmpython@...> wrote: > > > On Wed, Jan 4, 2012 at 2:19 PM, Benjamin Root <ben.root@...> wrote: > >> >> >> On Wednesday, January 4, 2012, jeffsp <jeffsp@...> wrote: >> > >> > plt.tight_layout(), sweet >> > >> > it still makes the labels too close to read, even if they don't overlap. >> > that is, they're just a continuous string of numbers with no whitespace >> > between. >> > >> > it does clean up the rest of the plot really nicely, though, without >> having >> > to continually dick around with subplots_adjust >> > >> > >> >> Well, it is a new feature with plenty of room for improvements. Maybe >> some sort of mindist parameter would be useful to establish a minimum >> distance between text objects? >> >> Ben Root >> >> > Something like that sounds good. If there were a way to make it the > default that labels would never overlap (but that default could be toggled > for those who, somehow, want to not be able to read their labels?), that > strikes me as best. > > In the meantime, what are other ways to do this? > > Just to clarify, I don't think improvements to `tight_layout` will fix your issues with tick layout; `tight_layout` adjusts the subplot spacing, not the spacing of tick labels. If you just want to prevent overlap in the static case, you can just set the tick labels yourself, e.g. `plt.xticks([1, 2, 3])`. If you want something automatic and dynamic, ... I believe this is actually a pretty difficult problem to solve in the general case. I've implemented a hacky attempt here<https://gist.github.com/1708133>;, but it leaves out a lot of common use cases (e.g. subplots) and doesn't account for spacing between the axes and figure. Tony 
From: Goyo <goyodiaz@gm...>  20110505 21:31:25

2011/5/5 Chris Rodgers <chris.rodgers@...>: > 1) Is this the intended behavior of matplotlib, or is there something > wrong with my installation? This is by design, hspace and vspace are proportional to the size of each subplot. Also the number of ticks does not depend on the subplot or labels size (using the default locator). So you have to fine tune if things don't fit together. Of course you can write custom subplotlike functions which take care of this the way you find more convenient. I wonder how other plotting packages deal with this. Goyo 