On Sun, Dec 21, 2008 at 1:30 PM, Georg Brandl <g.bra...@gmx.net> wrote:
> Hi,
>
> I'm currently using Qwt to display a plot in a GUI application, but I'd like
> to replace it with matplotlib and a shell window, so that the user can not
> only view the plot but also modify it in-place using pyplot commands.
>
> One thing I'd like to do is to adjust the spacing surrounding the plot to be
> constant, regardless of the window size.  Since the plot window is resized
> often, it is impossible to use very small subplot params and a waste of
> viewing space to use larger ones when the window is maximized.
>
> Is there a way to make the figure use absolute params like "20 pixels/points"?
>

Axes in matplotlib uses normalized figure coordinates. Therefore, you
have to convert your dimension (say 20 points) into normalized figure
coordinates, and you need to do it whenever your the figure size
changes.

There are ways to do this, but no easy way like
subplots_adjust(left="20 points").

One way is to use axes_divider.py that I recently added In the example
directory (in the svn trunk).


import matplotlib.pyplot as plt
from axes_divider import LocatableAxes, Divider, Size

fig1 = plt.figure(1)

pad=0.8 # inch
v=[Size.Fixed(pad), Size.Scalable(1.),Size.Fixed(pad)]
h=[Size.Fixed(pad), Size.Scalable(1.),Size.Fixed(pad)]
divider = Divider(fig1, [0, 0, 1, 1],
                  horizontal=v, vertical=h)
locator = divider.new_locator(nx=1, ny=1)

# axes
ax = LocatableAxes(fig1, divider.get_position())
ax.set_axes_locator(locator)
fig1.add_axes(ax)
plt.draw()



> Second, less important question: is there a way to give default font 
> properties
> (like weight="bold") for axis labels?
>

Unfortunately not, although font size and font color can be set using rcParams.

-JJ


> Third, I normally get my data one point at a time.  Is there a more efficient
> way to insert single data points in existing plots than doing
> set_xdata/set_ydata?
>
> Thanks,
> Georg
>
> --
> Thus spake the Lord: Thou shalt indent with four spaces. No more, no less.
> Four shall be the number of spaces thou shalt indent, and the number of thy
> indenting shall be four. Eight shalt thou not indent, nor either indent thou
> two, excepting that thou then proceed to four. Tabs are right out.
>
>
> ------------------------------------------------------------------------------
> _______________________________________________
> 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

Reply via email to