SourceForge logo
SourceForge logo
Menu

matplotlib-devel — matplotlib developers

You can subscribe to this list here.

2003 Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
(1)
Nov
(33)
Dec
(20)
2004 Jan
(7)
Feb
(44)
Mar
(51)
Apr
(43)
May
(43)
Jun
(36)
Jul
(61)
Aug
(44)
Sep
(25)
Oct
(82)
Nov
(97)
Dec
(47)
2005 Jan
(77)
Feb
(143)
Mar
(42)
Apr
(31)
May
(93)
Jun
(93)
Jul
(35)
Aug
(78)
Sep
(56)
Oct
(44)
Nov
(72)
Dec
(75)
2006 Jan
(116)
Feb
(99)
Mar
(181)
Apr
(171)
May
(112)
Jun
(86)
Jul
(91)
Aug
(111)
Sep
(77)
Oct
(72)
Nov
(57)
Dec
(51)
2007 Jan
(64)
Feb
(116)
Mar
(70)
Apr
(74)
May
(53)
Jun
(40)
Jul
(519)
Aug
(151)
Sep
(132)
Oct
(74)
Nov
(282)
Dec
(190)
2008 Jan
(141)
Feb
(67)
Mar
(69)
Apr
(96)
May
(227)
Jun
(404)
Jul
(399)
Aug
(96)
Sep
(120)
Oct
(205)
Nov
(126)
Dec
(261)
2009 Jan
(136)
Feb
(136)
Mar
(119)
Apr
(124)
May
(155)
Jun
(98)
Jul
(136)
Aug
(292)
Sep
(174)
Oct
(126)
Nov
(126)
Dec
(79)
2010 Jan
(109)
Feb
(83)
Mar
(139)
Apr
(91)
May
(79)
Jun
(164)
Jul
(184)
Aug
(146)
Sep
(163)
Oct
(128)
Nov
(70)
Dec
(73)
2011 Jan
(235)
Feb
(165)
Mar
(147)
Apr
(86)
May
(74)
Jun
(118)
Jul
(65)
Aug
(75)
Sep
(162)
Oct
(94)
Nov
(48)
Dec
(44)
2012 Jan
(49)
Feb
(40)
Mar
(88)
Apr
(35)
May
(52)
Jun
(69)
Jul
(90)
Aug
(123)
Sep
(112)
Oct
(120)
Nov
(105)
Dec
(116)
2013 Jan
(76)
Feb
(26)
Mar
(78)
Apr
(43)
May
(61)
Jun
(53)
Jul
(147)
Aug
(85)
Sep
(83)
Oct
(122)
Nov
(18)
Dec
(27)
2014 Jan
(58)
Feb
(25)
Mar
(49)
Apr
(17)
May
(29)
Jun
(39)
Jul
(53)
Aug
(52)
Sep
(35)
Oct
(47)
Nov
(110)
Dec
(27)
2015 Jan
(50)
Feb
(93)
Mar
(96)
Apr
(30)
May
(55)
Jun
(83)
Jul
(44)
Aug
(8)
Sep
(5)
Oct
Nov
(1)
Dec
(1)
2016 Jan
Feb
Mar
(1)
Apr
May
Jun
(2)
Jul
Aug
(3)
Sep
(1)
Oct
(3)
Nov
Dec
2017 Jan
Feb
(5)
Mar
Apr
May
Jun
Jul
(3)
Aug
Sep
(7)
Oct
Nov
Dec
2018 Jan
Feb
Mar
Apr
May
Jun
Jul
(2)
Aug
Sep
Oct
Nov
Dec
S M T W T F S






1
2
3
4
(4)
5
(3)
6
7
8
9
(2)
10
(2)
11
(7)
12
(3)
13
14
(1)
15
(1)
16
17
(4)
18
(1)
19
20
(1)
21
(1)
22
23
24
25
(5)
26
(3)
27
(4)
28
(1)
29
30
31





Showing 6 results of 6

From: Perry G. <pe...@st...> - 2004年05月11日 21:38:09
What you are seeing is one of the odd inconsistencies
present in Numeric regarding what kind of thing is returned
for a single element. This has been discussed on the numpy
list some years back.
>>> a = zeros((3,3), 'f')
>>> type(a[0,0])
<type 'array'>
>>> type(a[0][0])
<type 'float'>
>>> b = zeros((3,3), 'd')
>>> type(b[0,0])
<type 'float'>
>>> type(b[0][0])
<type 'float'>
So what kind of thing you get back when indexing a 2-d array
depends on both the type and dimensionality of the array.
The basic rule is that if the array is more than one dimension,
and not one of the basic python numerical types (e.g., 'f')
then indexing a single element tries to preserve the type by
returning a rank-0 array of the same type. Oddly though, indexing
a single element of a 1-d 'f' array returns a Python float scalar
(why the difference, I have no idea). This is why a[0][0] returns
something different than a[0,0] since one is indexing a 1-d array
(a[0]).
For numarray we decided that indexing a single element would always
return a Python scalar since that seemed to be what most expected.
There were those that argued that it should always return a rank-0
array, but we decided against that.
Perry
> -----Original Message-----
> From: mat...@li...
> [mailto:mat...@li...]On Behalf Of rod
> holland
> Sent: Tuesday, May 11, 2004 4:59 PM
> To: mat...@li...
> Subject: [matplotlib-devel] problem with <type 'array'> in pcolor
> 
> 
> The following code 
> 
> ======================
> from matplotlib.matlab import *
> 
> x = arange(0,20,.2)
> y = arange(0,20,.2)
> X, Y = meshgrid(x,y)
> z=zeros((len(x),len(y)),'f')
> for i in enumerate(x):
> for j in enumerate(y):
> z[i[0]][j[0]]=10*sin(i[1]*j[1])
> #or z[i[0],j[0]]=10*sin(i[1]*j[1]) 
> pcolor(X,Y, transpose(z),shading='faceted')
> show()
> =======================
> 
> breaks in the module color.py
> 
> =============================
> def get_color(self, val, valmin, valmax):
> # map val to a range
> from 0 to 1
> if iterable(val):
> s = "val must be a scalar.
> Perhaps you meant to call get_colors?"
> #print val,type(val)
> raise ValueError, s
> #print valmin, valmax
> #print
> val,type(val)
> ind = self.indmax*(val-valmin)/(valmax-valmin)
> return
> self.rgbs[self._bound_ind(ind)]
> ==============================
> 
> because the test for iterable fails since the element C[i,j] is type
> <array>. One solution is to change the code section around line 1126 in
> axes.py from c = C[i,j] to the following. 
> 
> =====================
> for i in range(Nx-1):
> for j in range(Ny-1):
> 
> c = C[i][j]
> =======================
> 
> 
> the form C[i][j] seems to always return float.
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by Sleepycat Software
> Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to 
> deliver higher performing products faster, at low TCO.
> http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
> _______________________________________________
> Matplotlib-devel mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel
> 
From: rod h. <rh...@st...> - 2004年05月11日 21:05:06
[The following problem seems to occur with Numeric but not with numarray]
The following code 
======================
from matplotlib.matlab import *
x = arange(0,20,.2)
y = arange(0,20,.2)
X, Y = meshgrid(x,y)
z=zeros((len(x),len(y)),'f')
for i in enumerate(x):
 for j in enumerate(y):
 z[i[0]][j[0]]=10*sin(i[1]*j[1])
 #or z[i[0],j[0]]=10*sin(i[1]*j[1]) 
pcolor(X,Y, transpose(z),shading='faceted')
show()
=======================
breaks in the module color.py
=============================
 def get_color(self, val, valmin, valmax):
 # map val to a range
from 0 to 1
 if iterable(val):
 s = "val must be a scalar.
Perhaps you meant to call get_colors?"
 #print val,type(val)
 raise ValueError, s
 #print valmin, valmax
 #print
val,type(val)
 ind = self.indmax*(val-valmin)/(valmax-valmin)
 return
self.rgbs[self._bound_ind(ind)]
==============================
because the test for iterable fails since the element C[i,j] is type
<array>. One solution is to change the code section around line 1126 in
axes.py from c = C[i,j] to the following. 
=====================
 for i in range(Nx-1):
 for j in range(Ny-1):
 c = C[i][j]
=======================
the form C[i][j] seems to always return float.
From: rod h. <rh...@st...> - 2004年05月11日 20:58:09
The following code 
======================
from matplotlib.matlab import *
x = arange(0,20,.2)
y = arange(0,20,.2)
X, Y = meshgrid(x,y)
z=zeros((len(x),len(y)),'f')
for i in enumerate(x):
 for j in enumerate(y):
 z[i[0]][j[0]]=10*sin(i[1]*j[1])
 #or z[i[0],j[0]]=10*sin(i[1]*j[1]) 
pcolor(X,Y, transpose(z),shading='faceted')
show()
=======================
breaks in the module color.py
=============================
 def get_color(self, val, valmin, valmax):
 # map val to a range
from 0 to 1
 if iterable(val):
 s = "val must be a scalar.
Perhaps you meant to call get_colors?"
 #print val,type(val)
 raise ValueError, s
 #print valmin, valmax
 #print
val,type(val)
 ind = self.indmax*(val-valmin)/(valmax-valmin)
 return
self.rgbs[self._bound_ind(ind)]
==============================
because the test for iterable fails since the element C[i,j] is type
<array>. One solution is to change the code section around line 1126 in
axes.py from c = C[i,j] to the following. 
=====================
 for i in range(Nx-1):
 for j in range(Ny-1):
 c = C[i][j]
=======================
the form C[i][j] seems to always return float.
From: Todd M. <jm...@st...> - 2004年05月11日 19:24:41
On Tue, 2004年05月11日 at 14:03, John Hunter wrote:
> Rod sent me the email included below this off list. I was hoping to
> get some input from the numarray gurus. It's my thought that he
> should just be doing
> 
> z[i[0], j[0]]=10*sin(i[1]*j[1]) 
> 
> rather than
> 
> z[i[0]][j[0]]=10*sin(i[1]*j[1]) 
> 
> Is there a compelling argument either way?
I think the first form is preferred, because the z-indexing evaluates to
a single setitem. The second form creates a view of a row of z and then
does a setitem on it... it is less efficient as well as harder to read.
BTW, both forms worked for me. I got the impression that the first
form would fail. If it failed for you, what value do you have for
numarray.__version__?
Todd
> 
> JDH
> 
> 
> ______________________________________________________________________
> 
> From: rod holland <rh...@st...>
> To: John Hunter <jdh...@ac...>
> Subject: Re: [matplotlib-devel] array bug -fix
> Date: 11 May 2004 11:18:22 -0700
> 
> X-From-Line: rh...@st... Tue May 11 12:54:56 2004
> Return-Path: <rh...@st...>
> X-Original-To: jdh...@ac...
> Delivered-To: jdh...@ac...
> Received: from webperception.com (nitace [128.135.97.130])
> 	by ace.bsd.uchicago.edu (Postfix) with ESMTP id 76C3CEF21
> 	for <jdh...@ac...>; 2004年5月11日 12:54:55 -0500 (CDT)
> Received: from nt-home ([64.7.82.86])
> by webperception.com (WebPerception Mail Server) with SMTP id
> HRA74455
> for <jdh...@ac...>; 2004年5月11日 11:17:10 -0700
> Message-Id: <3.0...@ma...>
> X-Sender: rh...@ma...
> X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.3 (32)
> Date: 2004年5月11日 11:18:22 -0700
> To: John Hunter <jdh...@ac...>
> From: rod holland <rh...@st...>
> Subject: Re: [matplotlib-devel] array bug -fix
> Lines: 82
> Xref: mother.paradise.lost mail-list.matplotlib-devel:322
> MIME-Version: 1.0
> 
> fixit note: John - take the bracket off transpose(z) - that was put in for
> testing. Once you make the change in C[i][j] you can add the bracket to
> force failure and test. I took the bracket off in the code below.
> 
> 
> If one forms a base array, for example, by using the ones or zeros
> functions with the float type ('f') in numeric (or numarray) (and then
> modfies elements wiht some loop - but this step really does not matter),
> each element in the array will have type <array> when called as you do in
> axes. Just give it a try. I do not know why this is the case - it may be
> because the element type (float) is part of the data type.
> 
> Here is a bit of code I tried that breaks your implementation:
> 
> from matplotlib.matlab import *
> 
> x = arange(0,20,.2)
> y = arange(0,20,.2)
> X, Y = meshgrid(x,y)
> z=zeros((len(x),len(y)),'f')
> for i in enumerate(x):
> for j in enumerate(y):
> z[i[0]][j[0]]=10*sin(i[1]*j[1]) 
> pcolor(X,Y, transpose(z),shading='faceted')
> show()
> 
> 
> The test for float occurs in color.py as follows:
> 
> def get_color(self, val, valmin, valmax):
> # map val to a range
> from 0 to 1
> if iterable(val):
> s = "val must be a scalar.
> Perhaps you meant to call get_colors?"
> #print val,type(val)
> raise ValueError, s
> #print valmin, valmax
> #print
> val,type(val)
> ind = self.indmax*(val-valmin)/(valmax-valmin)
> return
> self.rgbs[self._bound_ind(ind)]
> 
> 
> This breaks unless you form the element array value as C[i][j]. 
> 
> 
> At 06:41 AM 5/11/2004 -0500, you wrote:
> >>>>>> "rod" == rod holland <rh...@st...> writes:
> >
> > rod> lines 1123 - 1126 in axes.py should be changed at c = C[i,j]
> > rod> to the following. As it now stands a floating point number
> > rod> from a numeric array will generally register as type array
> > rod> rather than type float and be rejected as not iterable when
> > rod> later tested.
> >
> > rod> for i in range(Nx-1): for j in range(Ny-1):
> >
> > rod> c = C[i][j]
> >
> >
> >Sorry to be dense, but even after your detailed explanation I don't
> >really understand why you are getting an error. 
> >
> > * Are you passing a numerix array of floats for C? If so C[i,j]
> > should return the float we want
> >
> > * What do you mean will be "rejected as not iterable when later
> > tested"? I don't see any tests for iterable in poclor.
> >
> > * What is it you are doing differently that causes pcolor to fail
> > for you but not for the other uses, eg in pcolor_demo.py?
> >
> >If you could give me a little more information to clear up these
> >questions that would be helpful. Also, if you could post the
> >traceback you are getting that might help.
> >
> >Thanks!
> >John Hunter 
> >
-- 
Todd Miller <jm...@st...>
From: John H. <jdh...@ac...> - 2004年05月11日 12:03:51
>>>>> "rod" == rod holland <rh...@st...> writes:
 rod> lines 1123 - 1126 in axes.py should be changed at c = C[i,j]
 rod> to the following. As it now stands a floating point number
 rod> from a numeric array will generally register as type array
 rod> rather than type float and be rejected as not iterable when
 rod> later tested.
 rod> for i in range(Nx-1): for j in range(Ny-1):
 rod> c = C[i][j]
Sorry to be dense, but even after your detailed explanation I don't
really understand why you are getting an error. 
 * Are you passing a numerix array of floats for C? If so C[i,j]
 should return the float we want
 * What do you mean will be "rejected as not iterable when later
 tested"? I don't see any tests for iterable in poclor.
 * What is it you are doing differently that causes pcolor to fail
 for you but not for the other uses, eg in pcolor_demo.py?
If you could give me a little more information to clear up these
questions that would be helpful. Also, if you could post the
traceback you are getting that might help.
Thanks!
John Hunter 
From: rod h. <rh...@st...> - 2004年05月11日 05:14:28
lines 1123 - 1126 in axes.py should be changed at c = C[i,j] to the
following. As it now stands a floating point number from a numeric array
will generally register as type array rather than type float and be
rejected as not iterable when later tested.
 for i in range(Nx-1):
 for j in range(Ny-1):
 c = C[i][j]
1 message has been excluded from this view by a project administrator.

Showing 6 results of 6

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 によって変換されたページ (->オリジナル) /