Hi,
The simple code snippet at the end of this mail should plot a single line.
Unfortunately, depending on
- the backend
- the windowsize
- and the pan/zoom position inside the plot
one or more additional lines appear.
Under windows it looks like this:
http://img217.imageshack.us/my.php?image=matplotlibproblemei6.png
(disable Adblock Plus on Firefox, otherwise the image might not be visible)
When I pan the plot, the additional lines jump around randomly and sometimes dis- and reappear at their own will.
I get this problem for all the AGG-based backends (one additional line) and the GTK backend (several additional lines). GTKCairo does not show this behavior.
The problem appears under an up-to-date Fedora 64-bit with matplotlib 0.98.3 and 0.89.6 SVN (from today)
The output of "python setup.py" is this:
···
------------------
BUILDING MATPLOTLIB
matplotlib: 0.98.6svn
python: 2.5.2 (r252:60911, Sep 30 2008, 15:42:03) [GCC 4.3.2 20080917 (Red Hat 4.3.2-4)]
platform: linux2
REQUIRED DEPENDENCIES
numpy: 1.2.0
freetype2: 9.18.3
OPTIONAL BACKEND DEPENDENCIES
libpng: 1.2.33
Tkinter: no
wxPython: 2.8.9.1
* WxAgg extension not required for wxPython >= 2.8
Gtk+: gtk+: 2.14.5, glib: 2.18.3, pygtk: 2.13.0,
pygobject: 2.15.4
Qt4: Qt: 4.4.3, PyQt4: 4.4.4
Cairo: 1.4.12
OPTIONAL DATE/TIMEZONE DEPENDENCIES
datetime: present, version unknown
dateutil: 1.4
pytz: 2008i
OPTIONAL USETEX DEPENDENCIES
dvipng: no
ghostscript: 8.63
latex: no
------------------
Additionally I see this problem under 32-bit Windows XP using the Enthought EPD Py25 v4.1.30101 distribution which uses matplotlib 0.98.3
To reproduce the error:
- switch to GTKAgg
- run the script below
- enlarge or maximize the window (something larger than 1280*1024 should be fine)
- play around with zoom/pan
Expected result:
- a single line is plotted
Actually result:
- two or more lines are plotted
If you need more information just contact me,
Jan
-----------------------------------------
import numpy as np
import matplotlib.pyplot as plt
E = np.array((
1.00000000e+00, 1.50000000e+00, 2.00000000e+00, 3.00000000e+00,
4.00000000e+00, 5.00000000e+00, 6.00000000e+00, 8.00000000e+00,
1.00000000e+01, 1.50000000e+01, 2.00000000e+01, 3.00000000e+01,
4.00000000e+01, 5.00000000e+01, 6.00000000e+01, 8.00000000e+01,
1.00000000e+02, 1.50000000e+02, 2.00000000e+02, 3.00000000e+02,
4.00000000e+02, 5.00000000e+02, 6.00000000e+02, 8.00000000e+02,
1.00000000e+03, 1.02200000e+03, 1.25000000e+03, 1.50000000e+03,
2.00000000e+03, 2.04400000e+03, 3.00000000e+03, 4.00000000e+03,
5.00000000e+03, 6.00000000e+03, 7.00000000e+03, 8.00000000e+03,
9.00000000e+03, 1.00000000e+04, 1.10000000e+04, 1.20000000e+04,
1.30000000e+04, 1.40000000e+04, 1.50000000e+04, 1.60000000e+04,
1.80000000e+04, 2.00000000e+04, 2.20000000e+04, 2.40000000e+04,
2.60000000e+04, 2.80000000e+04, 3.00000000e+04, 4.00000000e+04,
5.00000000e+04, 6.00000000e+04, 8.00000000e+04, 1.00000000e+05,
1.50000000e+05, 2.00000000e+05, 3.00000000e+05, 4.00000000e+05,
5.00000000e+05, 6.00000000e+05, 8.00000000e+05, 1.00000000e+06,
1.50000000e+06, 2.00000000e+06, 3.00000000e+06, 4.00000000e+06,
5.00000000e+06, 6.00000000e+06, 8.00000000e+06, 1.00000000e+07,
1.50000000e+07, 2.00000000e+07, 3.00000000e+07, 4.00000000e+07,
5.00000000e+07, 6.00000000e+07, 8.00000000e+07, 1.00000000e+08))
att = np.array((
6.81740051e+00, 1.75185086e+00, 6.63815247e-01, 1.67656668e-01,
6.29160626e-02, 2.93190047e-02, 1.56961535e-02, 5.86499592e-03,
2.72337524e-03, 6.73972636e-04, 2.49871770e-04, 6.16613263e-05,
2.28421754e-05, 1.05816094e-05, 5.64930077e-06, 2.10496950e-06,
9.82279267e-07, 2.49513274e-07, 9.62561983e-08, 2.63733618e-08,
1.11014287e-08, 5.93131769e-09, 3.67936480e-09, 1.86298464e-09,
1.17168470e-09, 1.12328773e-09, 7.79131487e-10, 5.81480647e-10,
3.70505702e-10, 3.58735080e-10, 2.10556699e-10, 1.46027404e-10,
1.11492282e-10, 9.01020155e-11, 7.55231748e-11, 6.50072897e-11,
5.70367268e-11, 5.08048699e-11, 4.57978746e-11, 4.16871195e-11,
3.82455571e-11, 3.53357639e-11, 3.28322663e-11, 3.06573900e-11,
2.70724292e-11, 2.42403101e-11, 2.19399603e-11, 2.00399310e-11,
1.84446235e-11, 1.70823384e-11, 1.59052762e-11, 1.18363457e-11,
9.42247205e-12, 7.82716448e-12, 5.84766861e-12, 4.66702151e-12,
3.10158861e-12, 2.32245712e-12, 1.54571561e-12, 1.15853984e-12,
9.26114881e-13, 7.71364072e-13, 5.78493179e-13, 4.62698944e-13,
3.08366381e-13, 2.31229973e-13, 1.54153316e-13, 1.15555237e-13,
9.24919894e-14, 7.70766578e-14, 5.77835936e-14, 4.62280699e-14,
3.08187133e-14, 2.31110475e-14, 1.54093566e-14, 1.15555237e-14,
9.24322401e-15, 7.70169085e-15, 5.77776187e-15, 4.62220950e-15))
plt.figure()
plt.plot(E,att)
plt.yscale("log")
plt.xscale("linear")
plt.xlim(xmin=np.log(20), xmax=np.log(500))
plt.ylim(ymin=-18,ymax=5)
plt.show()