Hi there,

I'm using matplotlib (version 0.98.5.2) to generate a couple of bar-charts for a website.

Until now I've not been able to find a way set the x axis to a fixed range.

Suppose my data is turnover per hour. Now: If there is zero turnover at the beginning

or the end of a period matplotlib omits that value and limits the xrange so that non-zero

hours reside on the edges which would be confusing for the users.

This is the code:

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5,4),dpi=72)

ax = fig.add_subplot(111)

ax.set_ylabel('EUR')

ax.set_xlabel('Hour')

ax.set_xlim((1,24))

ax.bar(data.keys(),data.values(),width=1,align='center')

fig.savefig(filename)

I searched the docs but I didn't find anything that could fix my problem.

It would be great if anybody knew (and told me) what I am doing wrong.

Thanks in advance

Till Backhaus

Try moving the call to ax.set_xlim to *after* the call to ax.bar.

Ryan

## ···

On Thu, Apr 23, 2009 at 8:40 AM, Till Backhaus <till@…2568…> wrote:

Hi there,

I’m using matplotlib (version 0.98.5.2) to generate a couple of bar-

charts for a website.

Until now I’ve not been able to find a way set the x axis to a fixed

range.

Suppose my data is turnover per hour. Now: If there is zero turnover

at the beginning

or the end of a period matplotlib omits that value and limits the

xrange so that non-zero

hours reside on the edges which would be confusing for the users.

This is the code:

import matplotlib

matplotlib.use(‘Agg’)

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5,4),dpi=72)

ax = fig.add_subplot(111)

ax.set_ylabel(‘EUR’)

ax.set_xlabel(‘Hour’)

ax.set_xlim((1,24))

ax.bar(data.keys(),data.values(),width=1,align=‘center’)

fig.savefig(filename)

–

Ryan May

Graduate Research Assistant

School of Meteorology

University of Oklahoma

Sent from Norman, Oklahoma, United States