Re: [Matplotlib-users] Problems with sans-serif fonts and tick labels with TeX

2013-05-02 Thread Michael Droettboom
I think the confusion here stems from the fact that you're mixing TeX 
and non-TeX font commands.


This turns on TeX mode, so all of the text is rendered with an external 
TeX installation:


rc('text', usetex=True)

In this line, setting it to sans-serif will get passed along to TeX, but 
a specific ttf font name can not be used by TeX, so the second part 
(involving Helvetica) is ignored.  And setting the default body text in 
TeX does not (by default) change the math font.  This is (unfortunately 
standard TeX behavior).


rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})

This affects the font set used by matplotlib's internal mathtext 
renderer, and has no effect on TeX:


rc('mathtext', fontset='stixsans')

The solution I use when I want all sans-serif out of TeX is to use the 
cmbright package, which can be turned on by adding:


rc('text.latex', preamble=r'\usepackage{cmbright}')

That may require installing the cmbright LaTeX package if you don't 
already have it.


I know all this stuff is confusing, but providing a flat interface over 
both the internal text rendering and the TeX rendering isn't really 
possible -- they have different views of the world -- and I'm actually 
not sure it's desirable.  Though I wonder if we couldn't make it more 
obvious (somehow) when the user is mixing configuration that applies to 
the different contexts.


Mike

On 05/02/2013 11:58 AM, Paul Hobson wrote:

Hey folks,

I'm having trouble getting a consistent sans-serif font in my figures:
https://gist.github.com/phobson/5503195 (see attached output)

This is pretty much the same issue as this Stack Overflow post:
http://stackoverflow.com/questions/12322738/how-do-i-change-the-axis-tick-font-in-a-matplotlib-plot-when-rendering-using-lat

But, the end result I'm looking for is to process the whole figure 
through latex and have sans-serif fonts everywhere, even in math text.


The accepted solution on SO is to manually set the font properties of 
the ticks for the figure prior to saving.


Is there a configuration-based work around for this? I'd like to avoid 
having to pick through everywhere that I call fig.savefig and manually 
set tick font properties if possible.


Thanks,
-Paul



--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1


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


--
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with 2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Problems with sans-serif fonts and tick labels with TeX

2013-05-02 Thread Paul Hobson
On Thu, May 2, 2013 at 11:19 AM, Michael Droettboom md...@stsci.edu wrote:

  I think the confusion here stems from the fact that you're mixing TeX
 and non-TeX font commands.

 This turns on TeX mode, so all of the text is rendered with an external
 TeX installation:

 rc('text', usetex=True)

  In this line, setting it to sans-serif will get passed along to TeX, but
 a specific ttf font name can not be used by TeX, so the second part
 (involving Helvetica) is ignored.  And setting the default body text in TeX
 does not (by default) change the math font.  This is (unfortunately
 standard TeX behavior).

 rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})

 This affects the font set used by matplotlib's internal mathtext renderer,
 and has no effect on TeX:

 rc('mathtext', fontset='stixsans')

 The solution I use when I want all sans-serif out of TeX is to use the
 cmbright package, which can be turned on by adding:

 rc('text.latex', preamble=r'\usepackage{cmbright}')

 That may require installing the cmbright LaTeX package if you don't
 already have it.

 I know all this stuff is confusing, but providing a flat interface over
 both the internal text rendering and the TeX rendering isn't really
 possible -- they have different views of the world -- and I'm actually not
 sure it's desirable.  Though I wonder if we couldn't make it more obvious
 (somehow) when the user is mixing configuration that applies to the
 different contexts.

 Mike


Mike,

Thanks for the guidance. I know this stuff is complicated and the work
everyone has put into it to make it work is fantastic.

I now see that this was more of TeX issue than an MPL configuration issue.
Your help prompted me to find this solution (similar to yours):
mpl.rcParams['text.latex.preamble'] = [
   r'\usepackage{siunitx}',   # i need upright \micro symbols, but you
need...
   r'\sisetup{detect-all}',   # ...this to force siunitx to actually
use your fonts
   r'\usepackage{helvet}',# set the normal font here
   r'\usepackage{sansmath}',  # load up the sansmath so that math -
helvet
   r'\sansmath']  # - tricky! -- gotta actually tell tex to use!

Thanks again!
-paul
--
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with 2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users


Re: [Matplotlib-users] Widgets: How to disconnect spanselector once selection is completed

2013-05-02 Thread Delosari
I have been working on this problem for the last week and I have finally
started to understand how it should work:

1) Events and plt.show must be running all the time. Indeed, the latter is
designed to be set implemented at the end of the code. The events call
should be just before

2) To change the data on your figures you can use a key event. This post
illustrates the right way to do it and it includes a class for it

http://stackoverflow.com/questions/14347630/using-events-with-matplotlib-in-a-for-loop?rq=1

3) The problem with this structure is that your code must be fragmented in
different methods. You need to make sure to define your variables in the
main code so they can be imported across different methods (I am still
struggling with this... I will post an example code when I am done)

One additional question: When I try to run the cursor widget with the
spanselector widget the widgets glitches in a rather... painful way to the
eye way... Is there anyway to avoid this? I have been playing with the
cursor useblit widget but no luck



--
View this message in context: 
http://matplotlib.1069221.n5.nabble.com/Widgets-How-to-disconnect-spanselector-once-selection-is-completed-tp40949p40989.html
Sent from the matplotlib - users mailing list archive at Nabble.com.

--
Get 100% visibility into Java/.NET code with AppDynamics Lite
It's a free troubleshooting tool designed for production
Get down to code-level detail for bottlenecks, with 2% overhead.
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap2
___
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users