SourceForge logo
SourceForge logo
Menu

matplotlib-users — Discussion related to using matplotlib

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
(3)
Jun
Jul
Aug
(12)
Sep
(12)
Oct
(56)
Nov
(65)
Dec
(37)
2004 Jan
(59)
Feb
(78)
Mar
(153)
Apr
(205)
May
(184)
Jun
(123)
Jul
(171)
Aug
(156)
Sep
(190)
Oct
(120)
Nov
(154)
Dec
(223)
2005 Jan
(184)
Feb
(267)
Mar
(214)
Apr
(286)
May
(320)
Jun
(299)
Jul
(348)
Aug
(283)
Sep
(355)
Oct
(293)
Nov
(232)
Dec
(203)
2006 Jan
(352)
Feb
(358)
Mar
(403)
Apr
(313)
May
(165)
Jun
(281)
Jul
(316)
Aug
(228)
Sep
(279)
Oct
(243)
Nov
(315)
Dec
(345)
2007 Jan
(260)
Feb
(323)
Mar
(340)
Apr
(319)
May
(290)
Jun
(296)
Jul
(221)
Aug
(292)
Sep
(242)
Oct
(248)
Nov
(242)
Dec
(332)
2008 Jan
(312)
Feb
(359)
Mar
(454)
Apr
(287)
May
(340)
Jun
(450)
Jul
(403)
Aug
(324)
Sep
(349)
Oct
(385)
Nov
(363)
Dec
(437)
2009 Jan
(500)
Feb
(301)
Mar
(409)
Apr
(486)
May
(545)
Jun
(391)
Jul
(518)
Aug
(497)
Sep
(492)
Oct
(429)
Nov
(357)
Dec
(310)
2010 Jan
(371)
Feb
(657)
Mar
(519)
Apr
(432)
May
(312)
Jun
(416)
Jul
(477)
Aug
(386)
Sep
(419)
Oct
(435)
Nov
(320)
Dec
(202)
2011 Jan
(321)
Feb
(413)
Mar
(299)
Apr
(215)
May
(284)
Jun
(203)
Jul
(207)
Aug
(314)
Sep
(321)
Oct
(259)
Nov
(347)
Dec
(209)
2012 Jan
(322)
Feb
(414)
Mar
(377)
Apr
(179)
May
(173)
Jun
(234)
Jul
(295)
Aug
(239)
Sep
(276)
Oct
(355)
Nov
(144)
Dec
(108)
2013 Jan
(170)
Feb
(89)
Mar
(204)
Apr
(133)
May
(142)
Jun
(89)
Jul
(160)
Aug
(180)
Sep
(69)
Oct
(136)
Nov
(83)
Dec
(32)
2014 Jan
(71)
Feb
(90)
Mar
(161)
Apr
(117)
May
(78)
Jun
(94)
Jul
(60)
Aug
(83)
Sep
(102)
Oct
(132)
Nov
(154)
Dec
(96)
2015 Jan
(45)
Feb
(138)
Mar
(176)
Apr
(132)
May
(119)
Jun
(124)
Jul
(77)
Aug
(31)
Sep
(34)
Oct
(22)
Nov
(23)
Dec
(9)
2016 Jan
(26)
Feb
(17)
Mar
(10)
Apr
(8)
May
(4)
Jun
(8)
Jul
(6)
Aug
(5)
Sep
(9)
Oct
(4)
Nov
Dec
2017 Jan
(5)
Feb
(7)
Mar
(1)
Apr
(5)
May
Jun
(3)
Jul
(6)
Aug
(1)
Sep
Oct
(2)
Nov
(1)
Dec
2018 Jan
Feb
Mar
Apr
(1)
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2020 Jan
Feb
Mar
Apr
May
(1)
Jun
Jul
Aug
Sep
Oct
Nov
Dec
2025 Jan
(1)
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
S M T W T F S
1
(1)
2
(43)
3
(17)
4
(12)
5
(9)
6
(14)
7
(8)
8
9
(15)
10
(16)
11
(11)
12
(10)
13
(20)
14
(7)
15
(4)
16
(16)
17
(25)
18
(10)
19
(27)
20
(26)
21
(6)
22
(20)
23
(12)
24
(15)
25
(22)
26
(15)
27
(43)
28
(8)
29
(6)
30
(12)





Showing results of 446

1 2 3 .. 18 > >> (Page 1 of 18)
From: İ. D. <is...@na...> - 2008年06月30日 18:25:36
On Mon, Jun 23, 2008 at 6:52 PM, Charlie Moad <cw...@gm...> wrote:
> On Thu, Jun 19, 2008 at 10:35 PM, John Hunter <jd...@gm...> wrote:
>>
>> On Thu, Jun 19, 2008 at 9:19 PM, Charles Moad <cw...@gm...> wrote:
>>
>> > Seems like that one little fix did the trick. I ran several examples
>> > and
>> > haven't had any problems. Committed now.
>>
>> Thanks Charlie! Can you provide some basic instructions for those of
>> us on osx how we can enable and test this backend?
>
> I guess the two option are to set "CocoaAgg" as the default backend in your
> rc config or run a script with the "-dCocoaAgg" flag.
Works fine for me with Matplotlib 0.98.2. Thanks for the fix.
Regards,
ismail
-- 
Programmer Excuses number 45: I do object-oriented programming - if
the customer objects, I do more programming.
Tony S Yu wrote:
>
> On Jun 30, 2008, at 11:13 AM, Michael Droettboom wrote:
>> transScale is where all of the (optionally) logarithmic 
>> transformation takes place. I'm surprised
>>
>> >>> transDesired = self.transScale + self.transLimits
>>
>> didn't work for going from data to a (0, 0) - (1, 1) bounding box. 
>> Can you provide a small, yet complete, example that illustrates the 
>> bug so I can look at it further?
>
> I tried to put together a simple example showing my problem, but the 
> example worked properly! Doh!
>
> It turns out that my problem was specific to using a bounding box as 
> an input to transform:
>
> =========
> from numpy.random import rand
> import matplotlib.pyplot as plt
>
> ax = plt.subplot(111)
> xy = rand(5,2)
> ax.loglog(xy[:, 0], xy[:, 1], 'ro')
>
> trans = ax.transScale + ax.transLimits
> result = trans.transform(ax.dataLim) 
> =========
>
> The above command gives me:
> * TypeError:* 'Bbox' object is unsubscriptable
> (Note, if I call `plot` instead of `loglog` I don't have problems). 
> The quick solution is to replace the last line with
>
> >>> result = trans.transform(ax.dataLim._points)
>
> I guess I was confused because the transform worked fine with `plot`. 
> Is the TypeError above expected behavior?
>
Yes. The "transform" method is meant to take an Nx2 array, it doesn't 
take a bounding box. I think it probably works with non-log plots only 
by accident because bounding boxes can cast to arrays in some cases. It 
may be worth taking that out to avoid confusion, but I'll have to think 
on it some.
Thanks for looking into this!
Mike
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
On Jun 30, 2008, at 11:13 AM, Michael Droettboom wrote:
> transScale is where all of the (optionally) logarithmic 
> transformation takes place. I'm surprised
>
> >>> transDesired = self.transScale + self.transLimits
>
> didn't work for going from data to a (0, 0) - (1, 1) bounding box. 
> Can you provide a small, yet complete, example that illustrates the 
> bug so I can look at it further?
I tried to put together a simple example showing my problem, but the 
example worked properly! Doh!
It turns out that my problem was specific to using a bounding box as 
an input to transform:
=========
from numpy.random import rand
import matplotlib.pyplot as plt
ax = plt.subplot(111)
xy = rand(5,2)
ax.loglog(xy[:, 0], xy[:, 1], 'ro')
trans = ax.transScale + ax.transLimits
result = trans.transform(ax.dataLim)
=========
The above command gives me:
 TypeError: 'Bbox' object is unsubscriptable
(Note, if I call `plot` instead of `loglog` I don't have problems). 
The quick solution is to replace the last line with
 >>> result = trans.transform(ax.dataLim._points)
I guess I was confused because the transform worked fine with `plot`. 
Is the TypeError above expected behavior?
Thanks for your help.
-Tony
Tony S Yu wrote:
> On Jun 30, 2008, at 10:22 AM, Nihat wrote:
> 
>> ax = gca()
>> (x_screen, y_screen) = ax.transData.transform([x[10], y[10])
>> (x10, y10) = ax.transAxes.inverted().transform([x_screen, y_screen])
>>
>> Is it the proper way of doing it? Where can I find more info on 
>> transformations in general?
>> 
>
> I'd really be interested to know the answer to this question, too. I 
> recently wanted to do this exact same transformation. When I tried
>
> >>> (x10, y10) = ax.transLimits.transform([x[10], y[10])
>
> I got the desired input for *linear* data. Looking looking at the 
> definitions of the axes transforms in the code (Axes class in axes.py) 
> you see that:
>
> >>> self.transData = self.transScale + (self.transLimits + 
> self.transAxes)
>
> where `self` is the Axes object. It would seem that your sequence of 
> operations (`transData.transform` followed by 
> `transAxes.inverted().transform`) should be equivalent to:
>
> >>> transDesired = self.transScale + self.transLimits
>
> But, when I tried using this transform, I didn't get the desired 
> transformation for logarithmic data.
>
> Any transform experts out there?
> 
transScale is where all of the (optionally) logarithmic transformation 
takes place. I'm surprised
 >>> transDesired = self.transScale + self.transLimits
didn't work for going from data to a (0, 0) - (1, 1) bounding box. Can 
you provide a small, yet complete, example that illustrates the bug so I 
can look at it further?
Cheers,
Mike
-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA
Nihat wrote:
> Hello all,
>
> I believe it is an easy thing to do but I haven't figured out how to 
> convert between coordinate systems using transData or transAxes.
>
> x = numpy.arange(0.0, 1.0+0.01, 0.01)
> y = numpy.cos(2*2*numpy.pi*x)
> pylab.plot(x, y)
>
> I want to transform y1 to axis scale between 0 and 1.
> Also, I want to transform a value in axis scale, say 0.25, to a 
> corresponding y value in the data coordinates.
>
> I used
>
> ax = gca()
> (x_screen, y_screen) = ax.transData.transform([x[10], y[10])
> (x10, y10) = ax.transAxes.inverted().transform([x_screen, y_screen])
>
> Is it the proper way of doing it? Where can I find more info on 
> transformations in general?
The new transformations infrastructure is documented in the new docs 
(which are still in progress...)
 http://matplotlib.sourceforge.net/doc/html/devel/transformations.html
This document, however, doesn't describe what things like transData and 
transAxes are defined to be. That would probably be a useful thing to 
document.
transAxes places the axes within the figure.
transData maps from the data's coordinates all the way to the figure 
space which is (0, 0) to (1, 1). transData is a composite of the scale 
(for eg. logarithm), the limits (the currently "zoomed" in portion of 
the data), and the transAxes. It's the "fast lane" between the data and 
the screen.
In your example, if you expect to go between data and screen 
coordinates, you would do:
(x_screen, y_screen) = ax.transData.transform([x[10], y[10])
(x10, y10) = ax.transData.inverted().transform([x_screen, y_screen])
Note, we use transData both ways.
>
> Currently I am doing it manually scaling things with axis limits, 
> etc. I believe the neat thing is to use the transforms. Can somebody 
> explain me how it is done with transforms? I am using v0.98.1.
I hope that answers your question, but it's not entirely clear what you 
would like to do. Please ask further if the above didn't help.
Cheers,
Mike
On Jun 30, 2008, at 10:22 AM, Nihat wrote:
> ax = gca()
> (x_screen, y_screen) = ax.transData.transform([x[10], y[10])
> (x10, y10) = ax.transAxes.inverted().transform([x_screen, y_screen])
>
> Is it the proper way of doing it? Where can I find more info on 
> transformations in general?
I'd really be interested to know the answer to this question, too. I 
recently wanted to do this exact same transformation. When I tried
 >>> (x10, y10) = ax.transLimits.transform([x[10], y[10])
I got the desired input for *linear* data. Looking looking at the 
definitions of the axes transforms in the code (Axes class in axes.py) 
you see that:
 >>> self.transData = self.transScale + (self.transLimits + 
self.transAxes)
where `self` is the Axes object. It would seem that your sequence of 
operations (`transData.transform` followed by 
`transAxes.inverted().transform`) should be equivalent to:
 >>> transDesired = self.transScale + self.transLimits
But, when I tried using this transform, I didn't get the desired 
transformation for logarithmic data.
Any transform experts out there?
-Tony
Hello all,
I believe it is an easy thing to do but I haven't figured out how to convert
between coordinate systems using transData or transAxes.
x = numpy.arange(0.0, 1.0+0.01, 0.01)
y = numpy.cos(2*2*numpy.pi*x)
pylab.plot(x, y)
I want to transform y1 to axis scale between 0 and 1.
Also, I want to transform a value in axis scale, say 0.25, to a
corresponding y value in the data coordinates.
I used
ax = gca()
(x_screen, y_screen) = ax.transData.transform([x[10], y[10])
(x10, y10) = ax.transAxes.inverted().transform([x_screen, y_screen])
Is it the proper way of doing it? Where can I find more info on
transformations in general?
Currently I am doing it manually scaling things with axis limits, etc. I
believe the neat thing is to use the transforms. Can somebody explain me
how it is done with transforms? I am using v0.98.1.
Thanks in advance,
Nihat
From: John H. <jd...@gm...> - 2008年06月30日 13:01:50
On Mon, Jun 30, 2008 at 3:32 AM, Andrea Gavana <and...@gm...> wrote:
> It seems like Michael changes were reverted back to the previous
> behaviour. I have scanned the matplotlib-devel archives and found the
> reason. Even if the message says that text.py is fixed, I still see
> the problem I was having in dashpointlabel.py example using the latest
> text.py from SVN. I am probably missing something...
The changes that fixed dashpointlabel broke plain-vanilla tick layout,
which also use a TextWithDash. So I temporarily reverted them until
we can get a fix that works with all the examples.
Sorry for the confusion.
JDH
From: Darren D. <dsd...@gm...> - 2008年06月30日 10:56:44
On Monday 30 June 2008 04:18:14 sa6113 wrote:
> I want to save an animation in avi format by python code, would you please
> help me to start in this way?
At the FAQ page, http://matplotlib.sourceforge.net/faq.html , there is a 
section titled "How do I make a movie with matplotlib?"
From: Andrea G. <and...@gm...> - 2008年06月30日 08:32:56
Hi All,
On 6/27/08, Andrea Gavana wrote:
> Hi Michael,
>
> On Fri, Jun 27, 2008 at 7:54 PM, Michael Droettboom wrote:
> > Andrea Gavana wrote:
> >>
> >> 2) The dashed text positioning is wrong, you can see it by running
> >> dashpointlabel.py in the
> >> matplotlib_examples_0.98.1\examples\pylab_examples: the position of
> >> the values should be at the other end of the dash, not over the
> >> plotted point.
> >>
> >
> > I believe I have this fixed in SVN. Please kick the tires and let me know
> > if you still have problems.
It seems like Michael changes were reverted back to the previous
behaviour. I have scanned the matplotlib-devel archives and found the
reason. Even if the message says that text.py is fixed, I still see
the problem I was having in dashpointlabel.py example using the latest
text.py from SVN. I am probably missing something...
Andrea.
"Imagination Is The Only Weapon In The War Against Reality."
http://xoomer.alice.it/infinity77/
From: sa6113 <s.p...@gm...> - 2008年06月30日 08:18:16
I want to save an animation in avi format by python code, would you please
help me to start in this way?
-- 
View this message in context: http://www.nabble.com/how-to-save-animation-tp18190767p18190767.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
Hi. A couple of questions about `scatter`:
Q1
====
The bounding box `axes.dataLim` increases in size when calling 
scatter(x, y) compared to plot(x, y) (for the same x, y data, of 
course). I think this change is due to the size of the markers being 
added to the data limits (not sure if this is true). Is there an easy 
way to get the same data limits I would have for a call to `plot`?
Q2
====
Is there a way to get the data from the axes of a scatter plot?
Initially I thought I could get it with:
 >>> for collection in ax.collections:
 >>> for path in collection._paths:
 >>> print path.vertices
But this seems to be the path that draws the scatter markers. Any ideas?
Frame Class
==========
Finally, if anyone is interested, I'm playing around with a Frame 
class for `axes.frame`. This class adds customizable axes frames 
similar to the topic of this thread:
http://sourceforge.net/mailarchive/message.php?msg_id=87d57vjgye.fsf%40peds-pc311.bsd.uchicago.edu
In this older thread, the SAGE axes frames were criticized for not 
being flexible enough. I've tried to make this class as general as 
possible (within my ability:). As an example of the flexibility of 
this Frame class, I've added some Tufte-style frames similar to:
http://hupp.org/adam/weblog/2007/09/03/etframes-applying-the-ideas-of-edward-tufte-to-matplotlib/
To the developers on this thread: If there's anything I could do to 
make the attached Frame class more flexible (and more suitable for 
possible inclusion into MPL), I'd be happy to get some feedback.
Current Limitations:
================
* the frame can only be placed on the borders of the axes (mainly 
because I don't know how to move the tickers anywhere else).
* RangeFrame only works with linear data (I'm not sure how to use the 
`axes.transScale` to properly transform the data)
* RangeFrame and DashDotFrame don't work properly with `scatter` 
(because of the questions in this post).
The frame class itself isn't too long, but I got a little carried away 
adding in extra crap.
Sorry for the long, rambling email.;)
-Tony
From: Ryan M. <rm...@gm...> - 2008年06月29日 22:11:08
sandric ionut wrote:
> Hello:
> 
> I am trying to diplay legend of X and Y axes like: legend(('label X', 
> 'label Y'), isaxes=True)
> and I get an error<type 'exceptions.TypeError'>: __init__() got an 
> unexpected keyword argument 'is
> axes'
> 
> How can I display labels for X and Y axes and a Title for the plot
If I understand you correctly, what I think you want are:
title()
xlabel()
ylabel()
Ryan
-- 
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
From: sandric i. <san...@ya...> - 2008年06月29日 20:41:04
Hello:
I am trying to diplay legend of X and Y axes like: legend(('label X', 'label Y'), isaxes=True)
and I get an error<type 'exceptions.TypeError'>: __init__() got an unexpected keyword argument 'is
axes'
How can I display labels for X and Y axes and a Title for the plot
Thank you,
Ionut
 
From: Vincent N. <vin...@gm...> - 2008年06月29日 20:40:33
On Sun, Jun 29, 2008 at 22:26, John Hunter <jd...@gm...> wrote:
> gcf is written to return the last figure activated or created by the
> "figure" command. It would be fairly trivial to add support for
> making the last clicked figure the active one, but it seems like a
> reasonable thing to do (does anyone know what matlab does?). Since
> gcf emulates a matlab function, I'd like to hew fairly closely to
> that.
in Matlab, gcf() returns a handle to the last activated figure, either
by click or programmatically (e.g. "figure(1)", etc)
Cheers,
Vincent
From: John H. <jd...@gm...> - 2008年06月29日 20:26:19
On Sun, Jun 29, 2008 at 2:09 PM, sordnay <so...@gm...> wrote:
>
> Hi all,
> I have a little problem, I've been unable to solve, maybe someone can help
> me out.
> I have several figures opened, but when I use gcf() I get handle of the last
> opened figure instead of the active one...
> i.e. when intercepting a button_press_event, gcf().number returns the number
> of the last figure, not the number of the figure over which I clicked
> (different from last one
gcf is written to return the last figure activated or created by the
"figure" command. It would be fairly trivial to add support for
making the last clicked figure the active one, but it seems like a
reasonable thing to do (does anyone know what matlab does?). Since
gcf emulates a matlab function, I'd like to hew fairly closely to
that.
JDH
From: sordnay <so...@gm...> - 2008年06月29日 19:09:16
Hi all, 
I have a little problem, I've been unable to solve, maybe someone can help
me out.
I have several figures opened, but when I use gcf() I get handle of the last
opened figure instead of the active one... 
i.e. when intercepting a button_press_event, gcf().number returns the number
of the last figure, not the number of the figure over which I clicked
(different from last one).
How can I force that the gcf() to return handle to the active figure? 
Is there any event trigered when a figure gets the focus?
I don't think this should be the normal behaviour, but I have review my code
and I haven't found how could I be forcing this... any idea about how to
debug this? or if this is a bug?
some data that may help:
matplotlib version 0.98.1
interactive is True
units is False
platform is win32
numerix numpy 1.1.0
backend TkAgg version 8.4
-- 
View this message in context: http://www.nabble.com/gcf%28%29-problem-tp18184245p18184245.html
Sent from the matplotlib - users mailing list archive at Nabble.com.
Hello all,
I believe it is an easy thing to do but I haven't figured out how to convert
between coordinate systems using transData or transAxes. Here is the
simple_plot.py
import numpy
import pylab
x = numpy.arange(0.0, 1.0+0.01, 0.01)
y = numpy.cos(2*2*numpy.pi*x)
pylab.plot(x, y)
Here I want to transform y1 to axis scale between 0 and 1.
Also, I want to transform axis scale, say 0.25, to a corresponding y value
in the data coordinates.
pylab.show()
Currently I am doing it manually scaling things with axis limits, etc. I
believe the neat thing is to use the transforms api. Can somebody explain
me how it is done with transforms? I am using 0.98.1.
Thanks in advance,
Nihat
From: sandric i. <san...@ya...> - 2008年06月28日 19:27:57
 
Thank you John:
 
I have exported the excel file in csv format and imported as you showed me. When I try to create a plot with the command: plot(a[isfinite(b)],b[isfinite(b)]), I get an error message: index should be int. When I look at the second column from the csv file I see that the values are imported like '23.5' and not like 23.5 and this causes that error. How can I imported the values from all columns without ''
 
Ionut
 
----- Original Message ----
From: John Hunter <jd...@gm...>
To: sandric ionut <san...@ya...>
Cc: Darren Dale <dsd...@gm...>; Matplotlib <mat...@li...>
Sent: Saturday, June 28, 2008 5:19:42 PM
Subject: Re: [Matplotlib-users] plot xy data with missing values
On Sat, Jun 28, 2008 at 9:16 AM, sandric ionut <san...@ya...> wrote:
> Thank you Darren:
>
> The second example is what I need. I have made some test and it looks OK
> I have my data in excel. How can I read from excel files? Is it a special
> tool?
If you save as csv, you can use matplotlib.mlab.csv2rec to get your
data back as a record array. See
http://matplotlib.sourceforge.net/examples/pylab_examples/loadrec.py
JDH
 
From: John H. <jd...@gm...> - 2008年06月28日 14:19:45
On Sat, Jun 28, 2008 at 9:16 AM, sandric ionut <san...@ya...> wrote:
> Thank you Darren:
>
> The second example is what I need. I have made some test and it looks OK
> I have my data in excel. How can I read from excel files? Is it a special
> tool?
If you save as csv, you can use matplotlib.mlab.csv2rec to get your
data back as a record array. See
http://matplotlib.sourceforge.net/examples/pylab_examples/loadrec.py
JDH
From: sandric i. <san...@ya...> - 2008年06月28日 14:16:24
Thank you Darren:
 
The second example is what I need. I have made some test and it looks OK
I have my data in excel. How can I read from excel files? Is it a special tool?
 
Thank you again,
 
Ionut
----- Original Message ----
From: Darren Dale <dsd...@gm...>
To: mat...@li...
Cc: sandric ionut <san...@ya...>
Sent: Saturday, June 28, 2008 3:12:48 PM
Subject: Re: [Matplotlib-users] plot xy data with missing values
Hi Sandric,
On Saturday 28 June 2008 04:31:19 sandric ionut wrote:
> Hello:
> I want to draw a multiple line plot using the data from the bottom of the
> email, but I get a error message: <type 'exceptions.AssertionError'>:
> Dimensions of x and y are incompatible, which is normal, because the number
> of values on x are not equal with the number of values on y. The empty
> spaces from the table are missing values (which were not measured for a
> certain moment in time) and I can't replace them with any other values
It is more robust to use a NaN to represent a missed data point. Then when you 
load your data, your arrays will be the same length. There is already some 
support for plotting data with NaNs in it, but the preferred solution is to 
take a further step and use a masked array to mask your missing values. For 
example, at the ipython -pylab prompt:
time=array([1,2,3,4,5])
f1=array([1,2,NaN,4,5])
f1_m=ma.masked_where(isnan(f1),f1)
plot(f1_m)
That will give you a line with a break in it at the missed observation.
> Is it possible to interpolate the missing values or to the draw the plot as:
> on x the time values and on y the f1,f2,f3, represented as a continuous
> line
If you do not want breaks in your line due to the missed observation, you 
could interpolate the missing values yourself, but if you just want a 
continuous line through whatever data you have, you could use numpy's flexible 
indexing and do:
plot(time[isfinite(f1)], f1[isfinite(f1)])
> The plot should look like the image attached, but with a line crossing
> all the points for f1, f2, f3 
> 
> time f1 f2 f3
> 30 3.39  13.55
> 33   16.94
> 35  6.78 
> 36  10.16 
> 37 10.16 13.55 
> 38 13.55  
> 39 16.94 16.94 
> 40   20.33
> 41 20.33 20.33 
> 42 23.71  
> 44  23.71 
All of my suggestions are based on the assumption that you have recorded 
missing values as NaNs. If you can't reformat your data, or insert NaN's for 
missing values when you load it, I'm not sure how to help.
Darren
 
From: Darren D. <dsd...@gm...> - 2008年06月28日 12:12:53
Hi Sandric,
On Saturday 28 June 2008 04:31:19 sandric ionut wrote:
> Hello:
> I want to draw a multiple line plot using the data from the bottom of the
> email, but I get a error message: <type 'exceptions.AssertionError'>:
> Dimensions of x and y are incompatible, which is normal, because the number
> of values on x are not equal with the number of values on y. The empty
> spaces from the table are missing values (which were not measured for a
> certain moment in time) and I can't replace them with any other values
It is more robust to use a NaN to represent a missed data point. Then when you 
load your data, your arrays will be the same length. There is already some 
support for plotting data with NaNs in it, but the preferred solution is to 
take a further step and use a masked array to mask your missing values. For 
example, at the ipython -pylab prompt:
time=array([1,2,3,4,5])
f1=array([1,2,NaN,4,5])
f1_m=ma.masked_where(isnan(f1),f1)
plot(f1_m)
That will give you a line with a break in it at the missed observation.
> Is it possible to interpolate the missing values or to the draw the plot as:
> on x the time values and on y the f1,f2,f3, represented as a continuous
> line
If you do not want breaks in your line due to the missed observation, you 
could interpolate the missing values yourself, but if you just want a 
continuous line through whatever data you have, you could use numpy's flexible 
indexing and do:
plot(time[isfinite(f1)], f1[isfinite(f1)])
> The plot should look like the image attached, but with a line crossing
> all the points for f1, f2, f3 
> 
> time f1 f2 f3
> 30 3.39  13.55
> 33   16.94
> 35  6.78 
> 36  10.16 
> 37 10.16 13.55 
> 38 13.55  
> 39 16.94 16.94 
> 40   20.33
> 41 20.33 20.33 
> 42 23.71  
> 44  23.71 
All of my suggestions are based on the assumption that you have recorded 
missing values as NaNs. If you can't reformat your data, or insert NaN's for 
missing values when you load it, I'm not sure how to help.
Darren
From: Ryan M. <rm...@gm...> - 2008年06月28日 01:57:12
I kind of figured that was the case, upon looking at the code and 
realizing that the only commonality was in the broad purpose of both 
representations. Otherwise, there's really no commonality in the 
details or implementation. I just wanted to see what the "experts" 
thought before I embarked.
Between this and getting a working SkewT and the meteorological 
community will be all set!
Ryan
Eric Firing wrote:
> Ryan,
> 
> Quiver is not quite the right starting point, although parts of it might 
> work--and actually it could be bent into shape. The problem with 
> attempting a direct transformation of arrows into wind barbs is that the 
> arrows are formed with a fixed number of vertices, so everything is done 
> with nice, regular ndarrays. The natural way to make wind barbs would 
> be with the number of vertices depending on the wind speed. One could 
> probably get around this by using the maximum number of vertices, 
> corresponding to the max wind speed, and then letting some of the barbs 
> be zero-length.
> 
> Another difference might be that wind barbs would best be drawn with 
> lines, not with patches.
> 
> It might be worthwhile to start with the Quiver class and modify it as 
> needed. I certainly would not try to include Windbarb functionality as 
> an option or extension of Quiver. At most, one might be able to pull 
> some common functionality out into a base class for both.
> 
> Something I keep wanting to get to is an ellipse variant of quiver; that 
> would be much closer to the present quiver than a windbarb version would.
> 
> In any case, if you can come up with a good windbarb class, that would 
> be great. I expect Jeff Whitaker would like to add that to basemap, too.
> 
> Eric
> 
> 
> Ryan May wrote:
>> Hi,
>>
>> Has anyone ever tried to modify quiver to change away from plotting 
>> arrows? In my quest to make matplotlib useful the meteorological 
>> community at large, I'm trying to be able to plot what we refer to as 
>> wind barbs. Basically, instead of an arrow whose size indicates the 
>> magnitude of the vector field, a wind barb consists of a line whose 
>> alignment indicates the direction of the vector field (like the arrow) 
>> and has a number of lines or triangles along this shaft to indicate 
>> wind speed. It's a little odd and domain specific, but it's a must 
>> for the meteorologist. We like it because, unlike the arrows, you can 
>> pick off the actual wind speed at a point. See here for an example:
>>
>> http://www.rap.ucar.edu/weather/info/about_windbarb.html
>> http://www.rap.ucar.edu/weather/surface/displaySfc.php?region=abi&endDate=20080627&endTime=-1&duration=0 
>>
>>
>> Has anyone ever tried this (I'm pretty sure I know the answer)? 
>> Failing that, can anyone give me an idea of how difficult it might be 
>> for me to tweak quiver to do this?
>>
>> Thanks,
>>
>> Ryan
>>
> 
-- 
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
From: Eric F. <ef...@ha...> - 2008年06月28日 01:48:17
Ryan,
Quiver is not quite the right starting point, although parts of it might 
work--and actually it could be bent into shape. The problem with 
attempting a direct transformation of arrows into wind barbs is that the 
arrows are formed with a fixed number of vertices, so everything is done 
with nice, regular ndarrays. The natural way to make wind barbs would 
be with the number of vertices depending on the wind speed. One could 
probably get around this by using the maximum number of vertices, 
corresponding to the max wind speed, and then letting some of the barbs 
be zero-length.
Another difference might be that wind barbs would best be drawn with 
lines, not with patches.
It might be worthwhile to start with the Quiver class and modify it as 
needed. I certainly would not try to include Windbarb functionality as 
an option or extension of Quiver. At most, one might be able to pull 
some common functionality out into a base class for both.
Something I keep wanting to get to is an ellipse variant of quiver; that 
would be much closer to the present quiver than a windbarb version would.
In any case, if you can come up with a good windbarb class, that would 
be great. I expect Jeff Whitaker would like to add that to basemap, too.
Eric
Ryan May wrote:
> Hi,
> 
> Has anyone ever tried to modify quiver to change away from plotting 
> arrows? In my quest to make matplotlib useful the meteorological 
> community at large, I'm trying to be able to plot what we refer to as 
> wind barbs. Basically, instead of an arrow whose size indicates the 
> magnitude of the vector field, a wind barb consists of a line whose 
> alignment indicates the direction of the vector field (like the arrow) 
> and has a number of lines or triangles along this shaft to indicate wind 
> speed. It's a little odd and domain specific, but it's a must for the 
> meteorologist. We like it because, unlike the arrows, you can pick off 
> the actual wind speed at a point. See here for an example:
> 
> http://www.rap.ucar.edu/weather/info/about_windbarb.html
> http://www.rap.ucar.edu/weather/surface/displaySfc.php?region=abi&endDate=20080627&endTime=-1&duration=0
> 
> Has anyone ever tried this (I'm pretty sure I know the answer)? Failing 
> that, can anyone give me an idea of how difficult it might be for me to 
> tweak quiver to do this?
> 
> Thanks,
> 
> Ryan
> 
From: Ryan M. <rm...@gm...> - 2008年06月27日 22:30:20
Hi,
Has anyone ever tried to modify quiver to change away from plotting 
arrows? In my quest to make matplotlib useful the meteorological 
community at large, I'm trying to be able to plot what we refer to as 
wind barbs. Basically, instead of an arrow whose size indicates the 
magnitude of the vector field, a wind barb consists of a line whose 
alignment indicates the direction of the vector field (like the arrow) 
and has a number of lines or triangles along this shaft to indicate wind 
speed. It's a little odd and domain specific, but it's a must for the 
meteorologist. We like it because, unlike the arrows, you can pick off 
the actual wind speed at a point. See here for an example:
http://www.rap.ucar.edu/weather/info/about_windbarb.html
http://www.rap.ucar.edu/weather/surface/displaySfc.php?region=abi&endDate=20080627&endTime=-1&duration=0
Has anyone ever tried this (I'm pretty sure I know the answer)? Failing 
that, can anyone give me an idea of how difficult it might be for me to 
tweak quiver to do this?
Thanks,
Ryan
-- 
Ryan May
Graduate Research Assistant
School of Meteorology
University of Oklahoma
4 messages has been excluded from this view by a project administrator.

Showing results of 446

1 2 3 .. 18 > >> (Page 1 of 18)
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.
Thanks for helping keep SourceForge clean.
X





Briefly describe the problem (required):
Upload screenshot of ad (required):
Select a file, or drag & drop file here.
Screenshot instructions:

Click URL instructions:
Right-click on the ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)

More information about our ad policies

Ad destination/click URL:

AltStyle によって変換されたページ (->オリジナル) /