Here.
I found out that if I use
from pylab import *
as in the example, it works. But in my app, I'm using
import wx
import matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg
from matplotlib.font_manager import fontManager, FontProperties
from matplotlib.collections import LineCollection
could that be the culprit?
Carlos
script:
from pylab import *
import numpy as np
from matplotlib.collections import LineCollection
# We need to set the plot limits, the will not autoscale
ax = axes()
ax.set_xlim((-1,1))
ax.set_ylim((-1,1))
strike = [0,45,90,135]
dip = [10,20,30,40]
listXY = []
for i in range(len(strike)):
beta = np.radians(strike[i])
phi = np.radians(np.arange(-90,92,2))
lamb = np.radians((90 - dip[i]))
alpha = np.arccos(np.cos(phi) * np.cos(lamb))
tq = np.sqrt(2) * np.sin(alpha/2)
sint = np.sin(phi) / np.sin(alpha)
temps = 1 - (sint * sint)
x = tq * np.sqrt(temps)
y = tq * sint
x1 = np.cos(beta) * x + np.sin(beta) * y
y1 = -np.sin(beta) * x + np.cos(beta) * y
listXY.append(zip(x1,y1))
col = LineCollection(listXY, linewidths=1, colors='red', linestyles = 'dotted')
ax.add_collection(col, autolim=True)
show()
On Wed, Apr 28, 2010 at 09:46, Michael Droettboom <[email protected]> wrote:
> I can't reproduce the error on 0.99. Can you provide a complete script that
> reproduces the error?
>
> Mike
>
> Carlos Grohmann wrote:
>>
>> I've been trying to change the linestyles in a LineCollection, but
>> without any success...
>>
>> If I'm using:
>> col = collections.LineCollection(listXY, linewidths=circwdt,
>> colors=circcol, linestyle='solid', label=plabel)
>>
>> it works fine, but anything other than 'solid' gives me an error when
>> the code calls FigureCanvasAgg.draw(self) (it is a wxpython app):
>>
>> Traceback (most recent call last):
>> File "/home/guano/Arbeit/Stout/StereoPanel.py", line 552, in PlotChecked
>> self.stereoCanvas.draw()
>> File "/usr/lib/pymodules/python2.6/matplotlib/backends/backend_wxagg.py",
>> line 59, in draw
>> FigureCanvasAgg.draw(self)
>> File "/usr/lib/pymodules/python2.6/matplotlib/backends/backend_agg.py",
>> line 314, in draw
>> self.figure.draw(self.renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/artist.py", line 46,
>> in draw_wrapper
>> draw(artist, renderer, *kl)
>> File "/usr/lib/pymodules/python2.6/matplotlib/figure.py", line 774, in
>> draw
>> for a in self.axes: a.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/artist.py", line 46,
>> in draw_wrapper
>> draw(artist, renderer, *kl)
>> File "/usr/lib/pymodules/python2.6/matplotlib/axes.py", line 1721, in
>> draw
>> a.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/artist.py", line 46,
>> in draw_wrapper
>> draw(artist, renderer, *kl)
>> File "/usr/lib/pymodules/python2.6/matplotlib/legend.py", line 386, in
>> draw
>> self._legend_box.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/offsetbox.py", line 224, in
>> draw
>> c.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/offsetbox.py", line 224, in
>> draw
>> c.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/offsetbox.py", line 224, in
>> draw
>> c.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/offsetbox.py", line 224, in
>> draw
>> c.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/offsetbox.py", line 488, in
>> draw
>> c.draw(renderer)
>> File "/usr/lib/pymodules/python2.6/matplotlib/artist.py", line 46,
>> in draw_wrapper
>> draw(artist, renderer, *kl)
>> File "/usr/lib/pymodules/python2.6/matplotlib/lines.py", line 535, in
>> draw
>> drawFunc(renderer, gc, tpath, affine.frozen())
>> File "/usr/lib/pymodules/python2.6/matplotlib/lines.py", line 874,
>> in _draw_lines
>> self._lineFunc(renderer, gc, path, trans)
>> File "/usr/lib/pymodules/python2.6/matplotlib/lines.py", line 925,
>> in _draw_dashed
>> renderer.draw_path(gc, path, trans)
>> File "/usr/lib/pymodules/python2.6/matplotlib/backends/backend_agg.py",
>> line 98, in draw
>> _path
>> self._renderer.draw_path(gc, path, transform, rgbFace)
>> TypeError: float() argument must be a string or a number
>>
>>
>>
>> >From the MPL docs, I see that i should be able to use other linestyles:
>>
>>
>> http://matplotlib.sourceforge.net/api/collections_api.html#matplotlib.collections.LineCollection
>>
>> linestyles [ ‘solid’ | ‘dashed’ | ‘dashdot’ | ‘dotted’ ]
>> a string or dash tuple. The dash tuple is:
>>
>>
>>
>> I'm using MPL 0.99.0 in Ubuntu Karmic (9.10)
>>
>> tks
>>
>>
>>
>
> --
> Michael Droettboom
> Science Software Branch
> Operations and Engineering Division
> Space Telescope Science Institute
> Operated by AURA for NASA
>
>
--
Prof. Carlos Henrique Grohmann - Geologist D.Sc.
Institute of Geosciences - Univ. of São Paulo, Brazil
http://www.igc.usp.br/pessoais/guano
Linux User #89721
________________
Can’t stop the signal.
------------------------------------------------------------------------------
_______________________________________________
Matplotlib-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/matplotlib-users