Re: [Matplotlib-users] tex rendering broken?

2014-11-03 Thread Martin Wiebusch
I just downgraded to matplotlib 1.1.1 and now everything works. Looks
like a regression to me.

On Fri, 2014-10-31 at 15:53 +, Martin Wiebusch wrote:
 I am having trouble executing the example for typesetting labels with
 latex from http://matplotlib.org/users/usetex.html. Copying the standard
 example, tex_demo.py, to a file and executing it gives the following
 output:
 
 Traceback (most recent call last):
   File scratch.py, line 21, in module
 plt.savefig('tex_demo')
   File /usr/lib/pymodules/python2.7/matplotlib/pyplot.py, line 561, in
 savefig
 return fig.savefig(*args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/figure.py, line 1421,
 in savefig
 self.canvas.print_figure(*args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/backend_bases.py, line
 2220, in print_figure
 **kwargs)
   File
 /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
 505, in print_png
 FigureCanvasAgg.draw(self)
   File
 /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
 451, in draw
 self.figure.draw(self.renderer)
   File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
 draw_wrapper
 draw(artist, renderer, *args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/figure.py, line 1034,
 in draw
 func(*args)
   File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
 draw_wrapper
 draw(artist, renderer, *args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/axes.py, line 2086, in
 draw
 a.draw(renderer)
   File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
 draw_wrapper
 draw(artist, renderer, *args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/axis.py, line 1105, in
 draw
 self.label.draw(renderer)
   File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
 draw_wrapper
 draw(artist, renderer, *args, **kwargs)
   File /usr/lib/pymodules/python2.7/matplotlib/text.py, line 594, in
 draw
 self._fontproperties, angle, mtext=self)
   File
 /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
 241, in draw_tex
 self._renderer.draw_text_image(Z, x, y, angle, gc)
 OverflowError: cannot convert float infinity to integer
 
 My system is
 
 Linux mwlaptop 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC
 2014 x86_64 x86_64 x86_64 GNU/Linux
 
 My matplotlib version is 1.3.1, and I am using standard packages from my
 Ubuntu 14.10 distribution.
 
 



--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Fwd: tex rendering broken?

2014-11-03 Thread Thomas Caswell
Forwarding message to list that should have gone there initialy for
archiving.

-- Forwarded message --
From: Thomas Caswell tcasw...@gmail.com
Date: Mon, Nov 3, 2014 at 7:50 AM
Subject: Re: [Matplotlib-users] tex rendering broken?
To: Martin Wiebusch mwiebusc...@gmail.com


My first guess is that there is that some thing wrong with your latex
installation as the images on the website are regenerated as part of
building the documentation.

I can not reproduce this problem on a 1.4.2 installation on my computer.
Try cleaning out the tex.cache folder in either or both of
matplotlib.get_cachedir() or matplotlib.get_configdir().

Tom


On Mon, Nov 3, 2014, 06:24 Martin Wiebusch mwiebusc...@gmail.com wrote:

 I just downgraded to matplotlib 1.1.1 and now everything works. Looks
 like a regression to me.

 On Fri, 2014-10-31 at 15:53 +, Martin Wiebusch wrote:
  I am having trouble executing the example for typesetting labels with
  latex from http://matplotlib.org/users/usetex.html. Copying the standard
  example, tex_demo.py, to a file and executing it gives the following
  output:
 
  Traceback (most recent call last):
File scratch.py, line 21, in module
  plt.savefig('tex_demo')
File /usr/lib/pymodules/python2.7/matplotlib/pyplot.py, line 561, in
  savefig
  return fig.savefig(*args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/figure.py, line 1421,
  in savefig
  self.canvas.print_figure(*args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/backend_bases.py, line
  2220, in print_figure
  **kwargs)
File
  /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
  505, in print_png
  FigureCanvasAgg.draw(self)
File
  /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
  451, in draw
  self.figure.draw(self.renderer)
File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
  draw_wrapper
  draw(artist, renderer, *args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/figure.py, line 1034,
  in draw
  func(*args)
File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
  draw_wrapper
  draw(artist, renderer, *args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/axes.py, line 2086, in
  draw
  a.draw(renderer)
File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
  draw_wrapper
  draw(artist, renderer, *args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/axis.py, line 1105, in
  draw
  self.label.draw(renderer)
File /usr/lib/pymodules/python2.7/matplotlib/artist.py, line 55, in
  draw_wrapper
  draw(artist, renderer, *args, **kwargs)
File /usr/lib/pymodules/python2.7/matplotlib/text.py, line 594, in
  draw
  self._fontproperties, angle, mtext=self)
File
  /usr/lib/pymodules/python2.7/matplotlib/backends/backend_agg.py, line
  241, in draw_tex
  self._renderer.draw_text_image(Z, x, y, angle, gc)
  OverflowError: cannot convert float infinity to integer
 
  My system is
 
  Linux mwlaptop 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC
  2014 x86_64 x86_64 x86_64 GNU/Linux
 
  My matplotlib version is 1.3.1, and I am using standard packages from my
  Ubuntu 14.10 distribution.
 
 



 
 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




-- 
Thomas Caswell
tcasw...@gmail.com
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


[Matplotlib-users] Fwd: tex rendering broken?

2014-11-03 Thread Thomas Caswell
Forwarding message to list that should have gone there initialy for
archiving.

-- Forwarded message --
From: Martin Wiebusch mwiebusc...@gmail.com
Date: Mon, Nov 3, 2014 at 8:26 AM
Subject: Re: [Matplotlib-users] tex rendering broken?
To: Thomas Caswell tcasw...@gmail.com


On Mon, 2014-11-03 at 07:50 -0500, Thomas Caswell wrote:
 I can not reproduce this problem on a 1.4.2 installation on my
 computer.  Try cleaning out the tex.cache folder in either or both of

 matplotlib.get_cachedir() or matplotlib.get_configdir().

Thanks. Clearing the cache directory did the trick. It might be a good
idea to mention matplotlib.get_cachedir() and matplotlib.get_configdir()
explicitly under 'Troubleshooting' on the web page. Currently there is a
link which points you to matplotlib.get_configdir() (which was empty in
my case) but not matplotlib.get_cachedir().

Best regards,
Martin.






-- 
Thomas Caswell
tcasw...@gmail.com
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] savefig and StringIO error on Python3

2014-11-03 Thread Pierre Haessig
Le 02/11/2014 09:34, Scott Lasley a écrit :
 I wish I could say that it was because of a deep understanding of the inner 
 workings of matplotlib or a rock solid grasp of python 3's bytes vs strings, 
 but it wasn't.   fig.savefig threw the TypeError: string argument expected, 
 got 'bytes' exception, so I figured BytesIO might work better with the 
 binary png data than StringIO, and it did.
As a side note on the bytes vs strings topic, there is PyCon video 
that I found immensely useful:
Pragmatic Unicode, or How Do I Stop the Pain 
http://nedbatchelder.com/text/unipain.html
IMHO a 30 minutes talk worth watching.

best,
Pierre

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] matplotlib save image as postscript, when xlabel is saved as text and not path

2014-11-03 Thread Oren
Anyone know how to solve this thing?

Thanks.

On 2 November 2014 03:40, oren oren...@gmail.com wrote:

 How can I save a matplotlib figure with text as a postscript image and that
 the text will be saved as text. Currently when I save the image as
 postscript all the text in the image ( xlabel, ylabel etc.. ) is saved as
 path and not as text.. Is it possible to save it as text?

 If I use the following code ( use latex)

 matplotlib.rcParams[text.usetex] = True
 and save the image as postscript the text is saved as text.. But I do not
 want to use latex.. Is it possible without latex?


 Thanks


 Question also on stackoverflow

 http://stackoverflow.com/questions/26649266/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path



 --
 View this message in context:
 http://matplotlib.1069221.n5.nabble.com/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path-tp44261.html
 Sent from the matplotlib - users mailing list archive at Nabble.com.


 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users

--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] matplotlib save image as postscript, when xlabel is saved as text and not path

2014-11-03 Thread Paul Hobson
What happens when you save as a postscript file with
matplotlib.rcParams[text.usetex] = False?
-paul

On Mon, Nov 3, 2014 at 7:11 AM, Oren oren...@gmail.com wrote:

 Anyone know how to solve this thing?

 Thanks.

 On 2 November 2014 03:40, oren oren...@gmail.com wrote:

 How can I save a matplotlib figure with text as a postscript image and
 that
 the text will be saved as text. Currently when I save the image as
 postscript all the text in the image ( xlabel, ylabel etc.. ) is saved as
 path and not as text.. Is it possible to save it as text?

 If I use the following code ( use latex)

 matplotlib.rcParams[text.usetex] = True
 and save the image as postscript the text is saved as text.. But I do not
 want to use latex.. Is it possible without latex?


 Thanks


 Question also on stackoverflow

 http://stackoverflow.com/questions/26649266/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path



 --
 View this message in context:
 http://matplotlib.1069221.n5.nabble.com/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path-tp44261.html
 Sent from the matplotlib - users mailing list archive at Nabble.com.


 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




 --

 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users


--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] matplotlib save image as postscript, when xlabel is saved as text and not path

2014-11-03 Thread Paul Hobson
Can just go straight to PDF? What happens then? It might also be
informative to explain why using LaTeX is undesirable in your situation.
-p

On Mon, Nov 3, 2014 at 11:52 AM, Oren oren...@gmail.com wrote:

 Thanks for the respond Paul, But It still the same...

 This is how it looks like when I use
 matplotlib.rcParams[text.usetex] = False ( or noting at all )

 [image: Inline images 1]



 and this is when I use
 matplotlib.rcParams[text.usetex] = True

 [image: Inline images 2]





 As you can see, One is text and the other is path of points..


 Thank You,
 Oren.




 On 3 November 2014 21:40, Paul Hobson pmhob...@gmail.com wrote:

 What happens when you save as a postscript file with
 matplotlib.rcParams[text.usetex] = False?
 -paul

 On Mon, Nov 3, 2014 at 7:11 AM, Oren oren...@gmail.com wrote:

 Anyone know how to solve this thing?

 Thanks.

 On 2 November 2014 03:40, oren oren...@gmail.com wrote:

 How can I save a matplotlib figure with text as a postscript image and
 that
 the text will be saved as text. Currently when I save the image as
 postscript all the text in the image ( xlabel, ylabel etc.. ) is saved
 as
 path and not as text.. Is it possible to save it as text?

 If I use the following code ( use latex)

 matplotlib.rcParams[text.usetex] = True
 and save the image as postscript the text is saved as text.. But I do
 not
 want to use latex.. Is it possible without latex?


 Thanks


 Question also on stackoverflow

 http://stackoverflow.com/questions/26649266/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path



 --
 View this message in context:
 http://matplotlib.1069221.n5.nabble.com/matplotlib-save-image-as-postscript-when-xlabel-is-saved-as-text-and-not-path-tp44261.html
 Sent from the matplotlib - users mailing list archive at Nabble.com.


 --
 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




 --

 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users




--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Old-style/text figures

2014-11-03 Thread Andy Buckley
Hi again,

I didn't see any on-list answer, but got an off-list suggestion to use
an rc parameter to set a LaTeX preamble. I played around a little and
thought I should report on what I found, especially since it seems that
there is room for improvement here and I'd be interested to help.

Here are the relevant rc params that I have set:

font.size   : 17,
font.family : serif,
font.serif  : [TeX Gyre Pagella],
pgf.rcfonts : True,
pgf.preamble: [r\usepackage{amsmath,amssymb},
r\usepackage{fontspec}, r\defaultfontfeatures{Numbers=OldStyle}],


A couple of points to note here:

 * I'm using the PGF backend -- this ran a bit faster and produced much
smaller files than MPL rendering with TeX labels (text.usetex = True).
Also, I have data files with labels using macros like \text which MPL
MathText doesn't support, so I need to be able to include amsmath.

 * I've had to set TeX Gyre Pagella rather than Palatino, since this SE
question points out that fontspec's Palatino doesn't support small-caps
and old-style
figures:http://tex.stackexchange.com/questions/2994/fontspec-palatino-with-small-caps-and-old-style-figures

 * Although the backend uses fontspec, I have to import it explicitly in
my preamble, because the MPL import and use of fontspec happens _after_
where the pgf.preamble key is inserted. Actually, given that I found
fontspec doesn't seem to do the right thing for most math fonts, maybe I
need to ignore the rcfonts setting and do it a bit more manually if I
want full control -- pity.


If I ask this configuration to output a PDF file, though, I don't get
old-style figures as intended. So I started looking at the generated TeX
source by outputting as .pgf and wrapping in a little LaTeX file like this:

  \documentclass[12pt,minimal]{standalone}
  \usepackage{pgf}
  \usepackage{amsmath,amssymb}

  \usepackage{fontspec}
  \setmainfont[Numbers=OldStyle]{TeX Gyre Pagella}

  \begin{document}
  \input{plot.pgf}
  \end{document}

I've attached the result of this with the default MPL .pgf output as
plot-mpldefault.pdf. A couple of things are notable in that plot:

 * Old-style figures are used in the legend (where math mode is not
used), but the axis tick labels are not.

 * The full-size figures on the axes are very thin weight compared to
the text axis labels -- I knew something had looked a bit wrong in the
default output!


Looking in the .pgf file, the reason is clear. The axis ticks are in
display math mode, like this:


\pgftext[x=0.987638in,y=1.778400in,right,]{{\rmfamily\fontsize{17.00}{20.40}\selectfont
\(\displaystyle 1.05\)}}%
   ^^

I removed the \(\displaystyle and \) from the file and then recompiled
with and without the Numbers=OldStyle spec in the wrapper, producing the
attached plot-textoldstyle.pdf and plot-textlining.pdf figures. In both
of these the weight of the tick labels is much more balanced with the
other labels than in the default; the old-style or lining figure style
is more a matter of personal preference, but I would like to have the
option.


Apologies for the long email! I'd appreciate any feedback. It seems that
there are a couple of small tweaks which would greatly improve the MPL
TeX/PGF output, although they probably have side-effects of which I'm
unaware:

 * Don't put tick labels in math mode by default (i.e. unless a special
ticker is used). In our previous code, which I'm trying to reproduce in
MPL, even exponent-format tick labels were typeset as 10$^\text{exp}$
which automatically gets the font weights and styles correct. Is the
current \(\displaystyle etc. specified by the default ticker or is it
specific to the PGF backend?

 * I checked a bit, and fontspec seems a bit ropey when it comes to
changing math fonts to match the text font; I had to
\usepackage[osf]{mathpazo} before importing fontspec to get a correctly
weighted math font. mathspec is maybe worth investigation.


Thanks in advance, and thanks for tolerating this plot-cosmetics
obsessiveness ;-)

Andy



On 27/10/14 14:35, Andy Buckley wrote:
 Hi,
 
 I'm using MPL to implement a new plotter for a project has so far been
 using a custom-written LaTeX+pstricks script. Despite being slow and a
 bit hacky, the output is really quite nice and I want to try and emulate
 it as closely as possible via MPL; for example:
 
 https://users.hepforge.org/~buckley/atlas-py8-shower-e/ATLAS_2012_I1094568/d03-x02-y01.pdf
 
 I more or less have this working, but would really like to be able to
 use the old-style figures (OSF) numerals with variable baseline (aka
 lower-case or text figures cf.
 http://en.wikipedia.org/wiki/Text_figures), which give those plots quite
 a bit of their character.
 
 Probably this will anyway be possible only with the TeX or PGF backend
 to MPL, but what would be the best way to enable OSF figures from MPL?
 If I correctly understand the backend, the rc params font.family  e.g.
 font.serif are passed to the 

[Matplotlib-users] Problem extending a custom colormap

2014-11-03 Thread Damien Irving
I often like to define my own colormaps using hex strings, e.g.
hex_list = ['#FFF295', '#FFD555', '#FF850B', '#D55000', '#D5', '#550040', 
'#600080', '#80', '#D5', '#0B85FF', '#55AAFF', '#95CAFF']
However, when I pass them to contourf and try to extend the colorbar... 
plt.contourf(x, y, data, colors=hex_list, extend='both')
... it always ends up that the color of the final segment on the extended ends 
of the colorbar is the same color as the extension segment (i.e. the bit in the 
little arrow). This happens even when hex_list is much longer than the actual 
number of segments required.
Has anyone else had this problem?
--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Problem extending a custom colormap

2014-11-03 Thread Eric Firing
On 2014/11/03, 2:19 PM, Damien Irving wrote:
 I often like to define my own colormaps using hex strings, e.g.
 hex_list = ['#FFF295', '#FFD555', '#FF850B', '#D55000', '#D5',
 '#550040','#600080', '#80', '#D5', '#0B85FF', '#55AAFF', '#95CAFF']

 However, when I pass them to contourf and try to extend the colorbar...
 plt.contourf(x, y, data, colors=hex_list, extend='both')

 ... it always ends up that the color of the final segment on the
 extended ends of the colorbar is the same color as the extension segment
 (i.e. the bit in the little arrow). This happens even when hex_list is
 much longer than the actual number of segments required.

You need to use the levels kwarg to specify the contour interval 
boundaries, and then your list of colors needs to have a length equal to 
len(levels) + 1.  In other words, the number of colors listed in the 
colors kwarg needs to be *exactly* the number needed to fill between the 
  specified levels, plus one for each requested extend direction, if any.

plt.contourf(x, y, data, levels=[0, 1, 2],
  colors=['red', 'blue, 'brown', 'black'],
  extend='both')

That should give you blue and brown for 0-1 and 1-2; with red for 
data0, and black for data2.

Eric


 Has anyone else had this problem?



 --



 ___
 Matplotlib-users mailing list
 Matplotlib-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/matplotlib-users



--
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users