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


Showing 3 results of 3

From: Andrew S. <str...@as...> - 2008年01月20日 21:53:08
Hi Adeola,
OpenGL must be expecting a certain "packing" but your image data is 
packed differently. You have (at least) two options: 1) alter your numpy 
arrays to match the packing of OpenGL. This can be done by creating an 
array with the appropriate .strides value. 2) alter OpenGL's idea of how 
the data is packed. For this, see "7. Watch Your Pixel Store Alignment" 
in http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall/ 
-Andrew
Adeola Bannis wrote:
> Hi,
>
> I have a set of images I want to render with OpenGL, and I do this by
> doing some calculations, producing an array, then passing this array
> to OpenGL. Here's the relevant OpenGL call, for reference:
>
> gluBuild2DMipmaps(GL_TEXTURE_2D, 1, image.shape[0], image.shape[1],
> 							GL_LUMINANCE, GL_UNSIGNED_BYTE, flatImage)
>
> flatImage is just image as a flattened, contiguous numpy array... all
> that matters is that it contains the same values as in image.
>
> The problem is that passing my arrays to pylab.imshow() displays them
> exactly as they are meant to be, but in OpenGL they are 'twisted'.
> There is an offset that is _different_ for each picture that only
> seems to be resolved by replacing 'image.shape[0]' by
> 'image.shape[0]-5' or some other numbers that make the rows shorter.
> How is it that OpenGL does weird things with the row length but pylab
> is always happy?
>
> I can send pictures of the problem if it helps....
>
> Adeola
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Matplotlib-users mailing list
> Mat...@li...
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
> 
From: Adeola B. <the...@gm...> - 2008年01月20日 21:26:43
Hi,
I have a set of images I want to render with OpenGL, and I do this by
doing some calculations, producing an array, then passing this array
to OpenGL. Here's the relevant OpenGL call, for reference:
gluBuild2DMipmaps(GL_TEXTURE_2D, 1, image.shape[0], image.shape[1],
							GL_LUMINANCE, GL_UNSIGNED_BYTE, flatImage)
flatImage is just image as a flattened, contiguous numpy array... all
that matters is that it contains the same values as in image.
The problem is that passing my arrays to pylab.imshow() displays them
exactly as they are meant to be, but in OpenGL they are 'twisted'.
There is an offset that is _different_ for each picture that only
seems to be resolved by replacing 'image.shape[0]' by
'image.shape[0]-5' or some other numbers that make the rows shorter.
How is it that OpenGL does weird things with the row length but pylab
is always happy?
I can send pictures of the problem if it helps....
Adeola
From: Jack S. <jac...@gm...> - 2008年01月20日 01:12:14
Hello again,
Just an update to the ginput() I'm using now. If you clicked really
fast using the previous version, the event queue would fill up and
you'd wind up getting extra clicks in your list. This version fixes
that and adds the ability to (a) terminate the collection process with
a right click, and (b) set n=0 to keep collecting clicks indefinitely
until you right click. It also now returns a 2-d list rather than a
list of (,)'s.
Cheers,
Jack
class GaelInput(object):
 """
 Class that creates a callable object to retrieve mouse click in a
 blocking way, as in MatLab. This is based on Gael Varoquaux's
 almost-working object. Thanks Gael! I've wanted to get this
 working for years!
 -Jack
 """
 debug = False
 cid = None # event connection object
 clicks = [] # list of click coordinates
 n = 1 # number of clicks we're waiting for
 def on_click(self, event):
 """
 Event handler that will be passed to the current figure to
 retrieve clicks.
 """
 # write the debug information if we're supposed to
 if self.debug: print "button "+str(event.button)+":
"+str(event.xdata)+", "+str(event.ydata)
 # if this event's a right click we're done
 if event.button == 3:
 self.done = True
 return
 # if it's a valid click (and this isn't an extra event
 # in the queue), append the coordinates to the list
 if event.inaxes and not self.done:
 self.clicks.append([event.xdata, event.ydata])
 # if we have n data points, we're done
 if len(self.clicks) >= self.n and self.n is not 0:
 self.done = True
 return
 def __call__(self, n=1, timeout=30, debug=False):
 """
 Blocking call to retrieve n coordinate pairs through mouse clicks.
 n=1 number of clicks to collect. Set n=0 to keep collecting
 points until you click with the right mouse button.
 timeout=30 maximum number of seconds to wait for clicks
before giving up.
 timeout=0 to disable
 debug=False show each click event coordinates
 """
 # just for printing the coordinates
 self.debug = debug
 # connect the click events to the on_click function call
 self.cid = _pylab.connect('button_press_event', self.on_click)
 # initialize the list of click coordinates
 self.clicks = []
 # wait for n clicks
 self.n = n
 self.done = False
 t = 0.0
 while not self.done:
 # key step: yield the processor to other threads
 _wx.Yield();
 _time.sleep(0.1)
 # check for a timeout
 t += 0.1
 if timeout and t > timeout: print "ginput timeout"; break;
 # All done! Disconnect the event and return what we have
 _pylab.disconnect(self.cid)
 self.cid = None
 return self.clicks
def ginput(n=1, timeout=30, debug=False):
 """
 Simple functional call for physicists. This will wait for n clicks
from the user and
 return a list of the coordinates of each click.
 n=1 number of clicks to collect
 timeout=30 maximum number of seconds to wait for clicks
before giving up.
 timeout=0 to disable
 debug=False show debug information
 """
 x = GaelInput()
 return x(n, timeout, debug)

Showing 3 results of 3

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