Hi,

I have a strange (to me) problem with matplotlib version 0.91.2,
installed from source on a Debian Linux system.

I try to generate a plot which combines bitmap data (using "pcolor")
and some lines (using "plot") as in the appended script.  I switch off
the coordinate axes using the command axis("off") and I try to set the
displayed coordinate range using the command

    axis([x0-p, x1+p, y0-p, y1+p])

near the end of the script.

Problem: the output of this script, i.e. the file "out.eps" is
shifted.  To me it seems that the PostScript bounding box is wrong.

Some things I noticed:

1) It seems that the pixel data from the pcolor command is centred in
the boundign box.  If I plot the pcolor output at different locations,
the bounding box changes.  This seems wrong to me, because I expect
the bounding box to be determined by the above axis command.

2) If I comment out the axis("off") command, the output is no longer
shifted and looks perfect, except that it now has the unwanted
coordinate axes.

3) If I output an .png file, using the Agg backend, the problem does
not appear.  This does not help, since I need an .eps file.

My questions: What am I doing wrong?  How do I get an unshifted .eps
file without coordinate axes?  Any help would be very welcome.

Many thanks in advance,
Jochen

== script starts next line ===========================================
#! /usr/bin/env python

import matplotlib
matplotlib.use("PS")
from pylab import *

def create_hist():
    X = array([-2.3, -2.0, -1.7 ])
    Y = array([-0.3, -0.0, 0.3 ])
    hist = array([[ 0.2, 0.4 ], [ 0.6, 0.8 ]])
    return X, Y, hist

def generate_figure(fname, X, Y, hist, stamp=None):
    width = 4.5
    height = 1.6
    margin = 0.05
    padding = 0.05

    x0 = -3.3
    x1 = 4.0
    q = (x1-x0)/(width - 2*margin - 2*padding)
    y0 = -0.3
    y1 = y0 + (height - 2*margin - 2*padding)*q

    # create an appropriately sized figure
    rc('text', usetex=True)
    rc('font', family="serif", serif="Times", size=12.0)
    rc('xtick', labelsize=12)
    rc('ytick', labelsize=12)
    rc('figure.subplot', left=margin/width)
    rc('figure.subplot', right=(width-margin)/width)
    rc('figure.subplot', bottom=margin/height)
    rc('figure.subplot', top=(height-margin)/height)
    fig = figure(figsize=(width, height))
    ax = axes([margin/width, margin/height,
               (width-2*margin)/width, (height-2*margin)/height])
    p = q*padding

    # plot the density data
    mycmdata = {
        'red': ((0., 1.0, 1.0), (0.01, 0.95, 0.95), (1.0, 0.0, 0.0)),
        'green': ((0., 1.0, 1.0), (0.01, 0.95, 0.95), (1.0, 0.0, 0.0)),
        'blue': ((0., 1.0, 1.0), (0.01, 0.95, 0.95), (1.0, 0.0, 0.0)),
    }
    mycm = matplotlib.colors.LinearSegmentedColormap('mycm',  mycmdata)
    pcolor(X, Y, hist, cmap=mycm, shading='flat')

    # plot the corner
    plot([x0, x0, x1], [y1, y0, y0], "k-")
    plot([x0+0.6, x0+0.6, x1], [y1, y0+0.6, y0+0.6], "k-")

    # place the stamp
    if stamp is not None:
        text(x1-p, y1-p, stamp, va='top', ha='right')

    # save the result
    axis([x0-p, x1+p, y0-p, y1+p])
    axis("off")
    savefig(fname, facecolor="yellow")

X, Y, hist = create_hist()
generate_figure("out.eps", X, Y, hist, "$t=1$")

Attachment: signature.asc
Description: Digital signature

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to