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
(35) |
2
(29) |
3
(12) |
4
|
5
(8) |
6
(5) |
7
(3) |
8
(38) |
9
(15) |
10
(20) |
11
(14) |
12
(12) |
13
(17) |
14
(6) |
15
(41) |
16
(38) |
17
(31) |
18
(7) |
19
(14) |
20
(12) |
21
(3) |
22
(3) |
23
(15) |
24
(4) |
25
|
26
(3) |
27
(2) |
28
(7) |
29
(16) |
30
(17) |
31
(10) |
|
|
|
Dear Jeff, 2008年12月17日 Jeff Whitaker <js...@fa...>: > Mauro: Say you create a cylindrical basemap with lon_0=180. The > longitudinal extent of the map will be lon=0 to lon=360. If you then plot a > point with a longitude of -60, it will be off the map to the left (similar > to what your example plot shows). The solution is to renormalize the > longitudes of the points your are plotting to be within 0 and 360 (by adding > 360 if the longitude is negative). Thanks for the explanation -- it is obvious in retrospect! (Have to find the nearest wall...). With best regards, -- Dr. Mauro J. Cavalcanti Ecoinformatics Studio P.O. Box 46521, CEP 20551-970 Rio de Janeiro, RJ, BRASIL E-mail: mau...@gm... Web: http://studio.infobio.net Linux Registered User #473524 * Ubuntu User #22717 "Life is complex. It consists of real and imaginary parts."
On Wed, Dec 17, 2008 at 1:07 PM, Jae-Joon Lee <lee...@gm...> wrote: > On Wed, Dec 17, 2008 at 9:09 AM, Ken Schutte <kts...@gm...> wrote: > > On Wed, Dec 17, 2008 at 1:49 AM, Jae-Joon Lee <lee...@gm...> > wrote: > >> > >> This is a correct way indeed. > >> I believe that you considered it as a plain line because the arrow > >> head is too small. > >> You need to adjust the mutation_scale parameter. Try > >> > >> c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), > >> arrowstyle="->", mutation_scale=20.) > >> > >> Maybe the defaults need to be changed. > > > > Great. Is there a way to draw filled in arrow heads? > > > > I'm thinking of arrows like those made by graphviz, such as, > > http://www.graphviz.org/Gallery/directed/fsm.html > > > > The closest I can seem to get is like this, > > c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), > > arrowstyle="simple", linewidth=0.1, fc='k',mutation_scale=20.) > > > > (a) I don't know if this is possible if the whole arrow is implemented as > a > > single polygon (i.e. to draw line with a triangle head), and (b) I'm a > bit > > confused about the kwargs to the different things like axes.arrow, > > FancyArrowPatch, ArrowStyle, etc. (for example, arrow takes 'headwidth', > > but FancyArrowPatch does not.). > > > > (a) As of now, there is no arrowclass that meets your need. The arrow > is implemented as a single path, and it IS still possible to draw a > line+a triangle. But, the artist only has a single "fill" mode and it > is impossible to fill only a part of the path. It may be relatively > easy to support. I'll take a look into it. > > > (b) The FancyArrowPatch was very recently introduced and it's argument > is not consistent with previous ones (Arrow,FancyArrow, YAArrow). > Unlike other classes, FancyArrowPatch itself does not know how to draw > an arrow. It delegates it to ArrowStyle. So, If you want to use > FancyArrowPatch, "headwidth" should be given to ArrowStyle not to > FancyArrowPatch itself. I agree this can be a bit confusing, but all > the arrow-related parameters should be given to the style class. > > Take a look at "annotation_demo2.py" and see how it specifies the > arrowstyle (and also connectionstyle). The 'arrowprops' parameter in > the annotate function is mostly consumed by FancyArrowPatch class. > > Regards, > > -JJ > Thanks for the reply. I will be taking a look at the code, and if I come up with anything useful, I can post it. (It might be nice if eventually there were extra styles, e.g. "-|>", "<|-|>" for single lines with solid arrowheads). Ken
Mauro Cavalcanti wrote: > Dear Jeff & ALL, > > When trying to plot a set of points in Basemap using an > Equirectangular projection centered on a longitude different from the > default (using the parameter lon_0 to generate a map centered on the > desired longitude), I end up with a stange plot like the one attached > to this message (ie., all the points are plotted "over the edge of the > world"). Has Basemap been taught about the sphericity of the Earth? > (just a joke!) > > N.B. This happens no matter if I call ax.cla() (where ax is an > instance of figure.axes) and reload all the dataset after changing the > longitude. > > Any hints? > Mauro: Say you create a cylindrical basemap with lon_0=180. The longitudinal extent of the map will be lon=0 to lon=360. If you then plot a point with a longitude of -60, it will be off the map to the left (similar to what your example plot shows). The solution is to renormalize the longitudes of the points your are plotting to be within 0 and 360 (by adding 360 if the longitude is negative). -Jeff > With warmest regards, > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > -- Jeffrey S. Whitaker Phone : (303)497-6313 Meteorologist FAX : (303)497-6449 NOAA/OAR/PSD R/PSD1 Email : Jef...@no... 325 Broadway Office : Skaggs Research Cntr 1D-113 Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg
I uploaded new OSX binary eggs and a mpkg file to the sourceforge site. We have at least one more bugfix release to push out later, and before I do that I'd really like to know if the current installers resolve the known problems. If you have an OS X platfor to test on, I'd like to hear from you https://sourceforge.net/project/showfiles.php?group_id=80706&package_id=278194&release_id=646644
Dear Jeff & ALL, When trying to plot a set of points in Basemap using an Equirectangular projection centered on a longitude different from the default (using the parameter lon_0 to generate a map centered on the desired longitude), I end up with a stange plot like the one attached to this message (ie., all the points are plotted "over the edge of the world"). Has Basemap been taught about the sphericity of the Earth? (just a joke!) N.B. This happens no matter if I call ax.cla() (where ax is an instance of figure.axes) and reload all the dataset after changing the longitude. Any hints? With warmest regards, -- Dr. Mauro J. Cavalcanti Ecoinformatics Studio P.O. Box 46521, CEP 20551-970 Rio de Janeiro, RJ, BRASIL E-mail: mau...@gm... Web: http://studio.infobio.net Linux Registered User #473524 * Ubuntu User #22717 "Life is complex. It consists of real and imaginary parts."
On Wed, Dec 17, 2008 at 9:09 AM, Ken Schutte <kts...@gm...> wrote: > On Wed, Dec 17, 2008 at 1:49 AM, Jae-Joon Lee <lee...@gm...> wrote: >> >> This is a correct way indeed. >> I believe that you considered it as a plain line because the arrow >> head is too small. >> You need to adjust the mutation_scale parameter. Try >> >> c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), >> arrowstyle="->", mutation_scale=20.) >> >> Maybe the defaults need to be changed. > > Great. Is there a way to draw filled in arrow heads? > > I'm thinking of arrows like those made by graphviz, such as, > http://www.graphviz.org/Gallery/directed/fsm.html > > The closest I can seem to get is like this, > c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), > arrowstyle="simple", linewidth=0.1, fc='k',mutation_scale=20.) > > (a) I don't know if this is possible if the whole arrow is implemented as a > single polygon (i.e. to draw line with a triangle head), and (b) I'm a bit > confused about the kwargs to the different things like axes.arrow, > FancyArrowPatch, ArrowStyle, etc. (for example, arrow takes 'headwidth', > but FancyArrowPatch does not.). > (a) As of now, there is no arrowclass that meets your need. The arrow is implemented as a single path, and it IS still possible to draw a line+a triangle. But, the artist only has a single "fill" mode and it is impossible to fill only a part of the path. It may be relatively easy to support. I'll take a look into it. (b) The FancyArrowPatch was very recently introduced and it's argument is not consistent with previous ones (Arrow,FancyArrow, YAArrow). Unlike other classes, FancyArrowPatch itself does not know how to draw an arrow. It delegates it to ArrowStyle. So, If you want to use FancyArrowPatch, "headwidth" should be given to ArrowStyle not to FancyArrowPatch itself. I agree this can be a bit confusing, but all the arrow-related parameters should be given to the style class. Take a look at "annotation_demo2.py" and see how it specifies the arrowstyle (and also connectionstyle). The 'arrowprops' parameter in the annotate function is mostly consumed by FancyArrowPatch class. Regards, -JJ > Thanks a lot, > Ken > >
Hi Jeff, Thanks very much for this bit of code that you sent me. I got some graph paper out and plotted all of the axes in your code and it finally all made sense. Roger -- On Fri, Dec 12, 2008 at 3:50 PM, Roger André <ra...@gm...> wrote: > Thanks Jeff, > > I'll study your code and will see if I can adapt it for my use. > > Great tool also, > > Roger > -- > > > On Fri, Dec 12, 2008 at 3:20 PM, Jeff Whitaker <js...@fa...> wrote: > >> Roger André wrote: >> >>> Hi All, >>> >>> I'm very new to Matplotlib and am having some trouble getting a colorbar >>> to be positioned and sized I want it to. A big part of the problem is that >>> I have adapted several examples from the Cookbook and Gallery, just to see >>> if I could roughly approximate what I want to see, and now am having trouble >>> integrating the different pieces. Specifically, I can't seem to resolve >>> when to use add_subplot vs. add_axes. Below are 2 examples of code. The >>> first one shows correct layout of a data figure and a separate colorbar >>> below it. The colorbar is the correct size, and is located in the right >>> spot. The second example has the correct data mapped in it using the >>> basemap module, but I cannot get the colorbar to move up closer to the >>> figure, or to shrink it. Could someone advise me on this? I've looked at >>> the "Artist tutorial", and although it is very well written, I'm still not >>> sure how to get this done . >>> >>> Thanks in advance, >>> >>> Roger >>> >> >> Roger: I usually explicity two separate axes instances, one for the plot >> and one for the colorbar. The location of the axes always takes a bit of >> tweaking to get right. Here's an example: >> >> from mpl_toolkits.basemap import Basemap >> import matplotlib.pyplot as plt >> import numpy as np >> # create figure instance. >> fig = plt.figure(figsize=(8,8)) >> # create an axes instance, leaving room for colorbars on right and bottom. >> ax = fig.add_axes([0.05,0.15,0.8,0.8]) # color on bottom >> # set up orthographic map projection with >> # perspective of satellite looking down at 50N, 100W. >> # use low resolution coastlines. >> map = Basemap(projection='ortho',lat_0=50,lon_0=-100,resolution='c') >> # draw coastlines, country boundaries, fill continents. >> map.drawcoastlines() >> # draw the edge of the map projection region (the projection limb) >> map.drawmapboundary() >> # draw lat/lon grid lines every 30 degrees. >> map.drawmeridians(np.arange(0,360,30)) >> map.drawparallels(np.arange(-90,90,30)) >> # make up some data on a regular lat/lon grid. >> nlats = 73; nlons = 145; delta = 2.*np.pi/(nlons-1) >> lats = (0.5*np.pi-delta*np.indices((nlats,nlons))[0,:,:]) >> lons = (delta*np.indices((nlats,nlons))[1,:,:]) >> wave = 0.75*(np.sin(2.*lats)**8*np.cos(4.*lons)) >> mean = 0.5*np.cos(2.*lats)*((np.sin(2.*lats))**2 + 2.) >> # compute native map projection coordinates of lat/lon grid. >> x, y = map(lons*180./np.pi, lats*180./np.pi) >> # contour data over the map. >> cs = map.contourf(x,y,wave+mean,15) >> # get axes bounds. >> pos = ax.get_position() >> l, b, w, h = pos.bounds >> # create axes instance for colorbar on right. >> cax = plt.axes([l+w+0.03, b, 0.04, h]) >> # draw colorbar on right. >> plt.colorbar(cax=cax,orientation='vertical') >> # create axes instance for colorbar on bottom. >> cax = plt.axes([l, b-0.07, w, 0.04]) >> # draw colorbar on bottom. >> plt.colorbar(cax=cax,orientation='horizontal') >> plt.show() >> >> HTH, >> >> -Jeff >> >>> ------------- >>> >>> Example 1: >>> >>> #! /usr/bin/python >>> >>> import matplotlib.pyplot as plt >>> import numpy as np >>> from numpy.random import randn >>> from matplotlib import mpl >>> >>> # Make plot with horizontal colorbar >>> >>> fig = plt.figure(figsize=(7,8)) >>> ax = fig.add_subplot(111) >>> >>> # 'add_axes' for color bar >>> ax1 = fig.add_axes([0.25, .07, 0.5, 0.03]) # [x_loc, y_loc, x_size, >>> y_size] >>> >>> data = np.clip(randn(250, 250), -1, 1) # DATA FOR SQUARE FIG >>> ax.imshow(data, interpolation='nearest') # DRAW DATA IN SQUARE FIG >>> >>> ax.set_title('Monthly PCP percentiles for 9-2008') >>> >>> ########### Colorbar Settings ######## >>> cmap = mpl.cm.cool >>> norm = mpl.colors.Normalize(vmin=0.0, vmax=1.0) >>> cb1 = mpl.colorbar.ColorbarBase(ax1, cmap=cmap, norm=norm, >>> orientation='horizontal') >>> cb1.set_label('percentile') >>> ################################ >>> >>> plt.show() >>> fig.savefig('test.png') >>> >>> >>> -------------------------------------------------------------------------------------------- >>> Example 2: >>> >>> #! /usr/bin/python >>> >>> """taken from geos_demo_2.py""" >>> >>> from PIL import Image >>> from mpl_toolkits.basemap import Basemap >>> import numpy as np >>> import matplotlib >>> from matplotlib import mpl >>> import matplotlib.pyplot as plt >>> from matplotlib.image import pil_to_array >>> >>> plot_name = 'hydro_demo.png' >>> overlay_color = 'black' >>> >>> # read in jpeg image to rgb array >>> pilImage = Image.open('wms_mapser.png') >>> >>> #data = asarray(pilImage) >>> data = pil_to_array(pilImage) >>> data = data[:, :, :] # get data from RGB channels of image >>> >>> # define data region and projection parameters >>> ll_lon = -125 >>> ll_lat = 39 >>> ur_lon = -108 >>> ur_lat = 54 >>> lon_0 = 0 >>> >>> >>> fig = plt.figure(figsize=(7,8)) >>> #ax = fig.add_axes((0.1,0.1,0.8,0.8)) >>> ax = fig.add_axes((.1,0.1,0.8,0.8)) >>> >>> # create Basemap instance for cylindrical equidistant projection, htdro >>> image domain >>> m = Basemap(projection='cyl', lon_0=lon_0, llcrnrlon=ll_lon, >>> llcrnrlat=ll_lat, urcrnrlon=ur_lon, >>> urcrnrlat=ur_lat, suppress_ticks=False) >>> >>> # add data >>> cmap = mpl.cm.cool >>> m.imshow(data, cmap, interpolation=None) >>> plt.clim(0, 1) >>> >>> # add a colobar >>> plt.colorbar(orientation='horizontal') >>> >>> # add timestamp and save >>> fig = plt.gcf() >>> >>> # ADD FIGURE TEXT >>> fig.text(x=0.5, y=0.1, >>> s='percentile', >>> fontsize=10, >>> ) >>> >>> fig.set_size_inches((7,7)) >>> >>> # ADD A FIGURE TITLE >>> plt.title('Monthly PCP percentiles for 9-2008',y=1.05,fontsize=12) >>> >>> plt.show() >>> #fig.savefig(plot_name) >>> #print 'Plot saved to %s' % (plot_name) >>> ------------------------------------------------------------------------ >>> >>> >>> ------------------------------------------------------------------------------ >>> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, >>> Nevada. >>> The future of the web can't happen without you. Join us at MIX09 to help >>> pave the way to the Next Web now. Learn more and register at >>> >>> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> Matplotlib-users mailing list >>> Mat...@li... >>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >>> >>> >> >> >> -- >> Jeffrey S. Whitaker Phone : (303)497-6313 >> Meteorologist FAX : (303)497-6449 >> NOAA/OAR/PSD R/PSD1 Email : Jef...@no... >> 325 Broadway Office : Skaggs Research Cntr 1D-113 >> Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg >> >> >
On Mon, Dec 15, 2008 at 11:22 AM, Alejandro Weinstein <ale...@gm...> wrote: > Is anybody aware of the MPL bug on Ubuntu intrepid? > > https://bugs.launchpad.net/ubuntu/+source/matplotlib/+bug/299381 The problem is caused by outdated *.pyc files. The solution is sudo python -c 'import matplotlib'
On Wed, Dec 17, 2008 at 1:49 AM, Jae-Joon Lee <lee...@gm...> wrote: > > This is a correct way indeed. > I believe that you considered it as a plain line because the arrow > head is too small. > You need to adjust the mutation_scale parameter. Try > > c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), > arrowstyle="->", mutation_scale=20.) > > Maybe the defaults need to be changed. Great. Is there a way to draw filled in arrow heads? I'm thinking of arrows like those made by graphviz, such as, http://www.graphviz.org/Gallery/directed/fsm.html The closest I can seem to get is like this, c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), arrowstyle="simple", linewidth=0.1, fc='k',mutation_scale=20.) (a) I don't know if this is possible if the whole arrow is implemented as a single polygon (i.e. to draw line with a triangle head), and (b) I'm a bit confused about the kwargs to the different things like axes.arrow, FancyArrowPatch, ArrowStyle, etc. (for example, arrow takes 'headwidth', but FancyArrowPatch does not.). Thanks a lot, Ken
On Mon, Dec 15, 2008 at 2:44 PM, John Hunter <jd...@gm...> wrote: > I am not sure what figimage should mean for a vector backend so I want > to hear from Perry who motivated the function. When I implemented it > on his original request, I understood it to be a raw pixel dump to the > canvas with no scaling, no interpolation, etc.... What does a pixel > dump to a canvas mean for a vector backend? I think we could define > something that was at least consistent, but we should probably hear > from Perry et al who are presumably using the function. After sleeping on this overnight, I think the answer here is clear. figimage is meant to be a pixel dump, so we should just treat a pixel as a dot. When dpi is increased, the number of dots on the canvas increases so the figimage should look smaller. I added your patch and support for magnification to figimage -- the output looks right for PNG, PDF and EPS -- svg still not. I haven't had a chance to look but perhaps SVG does not utilize the magnification param. I'll check into this later. JDH
On 10-Dec-08, at 3:11 PM, Ryan Wagner wrote: > Hi Everyone, > Does anyone know the long term plans of fixing Axes3d / Mplot3D > in MPL? Is this ever going to be re-incorporated in this library in > the future? Just wondering... > -Ryan Wagner Oddly, this hasn't been answered, so I will, but as I understand it from previous list conversations: no, there are no plans to bring back 3D capabilities in MPL. Take a look at https://svn.enthought.com/enthought/wiki/MayaVi for your 3D plotting needs, it's quite well supported by Enthought and can be used in tandem with MPL in the same ipython session. David
Ken, On Wed, Dec 17, 2008 at 1:14 AM, Ken Schutte <kts...@gm...> wrote: > This new FancyArrow stuff looks great, but I'm having trouble getting it to > work. All of the gallery examples I see seem to only use it thru an > 'annotate' call. I just want to draw these arrows directly. > > I tried the following, but it just draws a plain line: > > ax = gca() > c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), > arrowstyle="->") > ax.add_patch(c) This is a correct way indeed. I believe that you considered it as a plain line because the arrow head is too small. You need to adjust the mutation_scale parameter. Try c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), arrowstyle="->", mutation_scale=20.) Maybe the defaults need to be changed. > > I also tried uisng __call__ on an ArrowStyle instance: > > a = matplotlib.patches.ArrowStyle.Fancy(head_length=.4, head_width=.4, > tail_width=.4) > pth = matplotlib.path.Path( [[.3,.1],[.7,.5]] ) > a(pth,1,1) > > This gives an error. (it looks like it tries to access path.codes[:], which > from what I can tell shouldn't be accessed directly - so maybe this is a > bug?). This method is not intended to be called directly by user. Currently, the first argument of the __call__ method should be a path with path.codes != None. It can be a straight line, but still you have to explicitly set its codes. Futhemore, some arrow classes (Simple, Fancy and Wedge) only accept a single segment of cubic bezier line. FancyArrowPatch internally uses ConnectionStyle class to create bezier cuve. Take a look if you're interested in. IHTH, -JJ > > Any hints on how to draw FancyArrow? > > thanks, > Ken > > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > >
This new FancyArrow stuff looks great, but I'm having trouble getting it to work. All of the gallery examples I see seem to only use it thru an 'annotate' call. I just want to draw these arrows directly. I tried the following, but it just draws a plain line: ax = gca() c = matplotlib.patches.FancyArrowPatch((0.2, 0.2), (0.5, 0.5), arrowstyle="->") ax.add_patch(c) I also tried uisng __call__ on an ArrowStyle instance: a = matplotlib.patches.ArrowStyle.Fancy(head_length=.4, head_width=.4, tail_width=.4) pth = matplotlib.path.Path( [[.3,.1],[.7,.5]] ) a(pth,1,1) This gives an error. (it looks like it tries to access path.codes[:], which from what I can tell shouldn't be accessed directly - so maybe this is a bug?). Any hints on how to draw FancyArrow? thanks, Ken
Aleš Čadež wrote: > First of all, thanks for helping me. What you wrote is not exactly what > i need. Let me show you an example: > > > > > > Now here are different size circles (biggest grey is »size=8«, other two > are »size=4«, and blue circles are size 2 and 1). I would like to color > them according to colorbar (size=1 = blue, size=4 = green, size = 8 = red) > > > > In your example there is random color to the circle size, i want the > size to match the color. I think my randomizing of the position is throwing you off. Here is a version that I think makes it more clear that the size (radius) is matching the color: radius = np.arange(10) area = np.pi*radius**2 x = radius y = area cmap = plt.get_cmap('spectral') plt.scatter(x, y, s=area, c=radius, cmap=cmap) plt.colorbar() Eric
On Tue, Dec 16, 2008 at 7:06 PM, Jae-Joon Lee <lee...@gm...> wrote: > ps. John, are you releasing a new maintenance version? I'm afraid that > my previous patch broke one of the example. Sorry, I thought the fix > was obvious and didn't pay much attention. Yes, and I had just completed a round of testing when I saw your patch come in and included it w/o further testing (stupid). In any case, there are still a couple of bug fixes and optimizations that are in progress, and I will continue to push these out as they become available. The tarball and OSX binaries will soon be almost fully automated, and when we stabilize the 98.5 branch, Charlie can post an update to the win32 binaries. I plan to cut another bugfix release tomorrow in any case. JDH
This should now be fixed (maintenance & trunk). John, I guess I found what I did wrong last time. I used emacs svn interface for committing and it seems that some of the properties are not properly committed. This time, I simply used the shell command. let me know if I messed up again. -JJ ps. John, are you releasing a new maintenance version? I'm afraid that my previous patch broke one of the example. Sorry, I thought the fix was obvious and didn't pay much attention. On Tue, Dec 16, 2008 at 5:18 PM, Jae-Joon Lee <lee...@gm...> wrote: > On Tue, Dec 16, 2008 at 4:02 PM, Jouni K. Seppänen <jk...@ik...> wrote: >> "Jae-Joon Lee" <lee...@gm...> writes: >> >>> So, Lebostein and j, if you know how to check out using svn, can you >>> give a try either the svn trunk or the maintenance branch? I'm >>> attaching the patch just in case. >> >> On the svn trunk, the demo examples/api/legend_demo.py now fails at >> "leg.get_texts()" with "AttributeError: 'Legend' object has no attribute >> 'texts'". Calling show() seems to fix the legend so that get_texts >> works, so I suspect that the bug is related to the _init_legend_box call >> that your patch removes. >> >> -- >> Jouni K. Seppänen >> http://www.iki.fi/jks >> > > I also see the problem. > And, yes, this is related with _init_legend_box. As the paddings and > such need to be determined at drawing time, I moved this into the > draw() method. > The fix may involve some rearrangement of the code. > I'll work on it. > > Thanks, > > -JJ > > > >> >> ------------------------------------------------------------------------------ >> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. >> The future of the web can't happen without you. Join us at MIX09 to help >> pave the way to the Next Web now. Learn more and register at >> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ >> _______________________________________________ >> Matplotlib-users mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users >> >
Michael Hearne wrote: > I'm trying to replicate the color-mapping behavior of the GMT package > with matplotlib/basemap and the imshow() function, and have run into a > problem. > > Using GMT you can assign colors to ranges of Z values, so that (for > example), Z values between 0 and 50 are given a color interpolated > between (0,0,255) (blue) and (255,0,0) (red). There have been various > versions of a function called gmtColorMap() posted to this list. I did > some experiments today, and as far as I can tell, this function only > reads the _color_ part of a GMT .cpt file, ignoring the Z values to > which those color ranges are assigned. This isn't a problem as long as > you have a linear color scale. However, if you have (as in my case) a > color scale assigned to non-linear ranges of values, it becomes a problem. > > Is there a way with imshow() to assign ranges of colors to specific > ranges of Z values? > Yes. See examples/pylab_examples/image_masked.py for an example of BoundaryNorm. The combination of a ListedColormap and a BoundaryNorm should provide exactly what you are describing. Eric > As a test, I created the attached python script, which reads in the > attached .cpt file. > > For those of you not aware of the GMT color palette file format, in each > row you define two end points for your Z values, and two corresponding > RGB triplets. In my simplified example, I have defined 8 ranges, and > assigned a single color to each range. For example, the first two lines > in my color palette file looks like this: > > 00000 255 255 255 00005 255 255 255 > 00005 255 255 000 00050 255 255 000 > > which can be interpreted to mean that any values between 0 and 5 (filled > in with zeros to make the columns line up), should be colored white. > Similarly, any values between 5 and 50 should be colored yellow. > > > > > > > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > > > ------------------------------------------------------------------------ > > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users
On Tue, Dec 16, 2008 at 3:17 PM, Christopher Barker <Chr...@no...> wrote: >> > python myfile.py -dPS > > same error -- why does it need to use png at all with PS? Chris, Thanks for all the tests. The image module uses _png. Even the vector backends need raster images. We could move the import into the method when it is actually called, since we actually embed the images directly into the ps and do not go via png. >> Could you also test the mpkg zip file -- I am curious if that shows >> the same png problems for you. > > same errors as the egg. > > Can you test on PPC? I do have an old, clunky OSX 10.3 machine at home. A little afraid to go there :-( > > I recently had a problem with a wxPython extension -- it build Universal, > but only worked on Intel. It turns out that the wxPython binaries were > compiled differently on PPC and Intel -- using an older version of gcc on > PPC (for 10.3 compatibility maybe?). Anyway, it was a mess, but we fixed it > by compiling the extension separately with a bunch of different flags, then > lipo-ing the two binaries together. > > Could anything funky like that be going on here? Could be -- you can check the Makefile to get a look at the flags I am using and let me know if you have any suggestions http://matplotlib.svn.sourceforge.net/viewvc/matplotlib/trunk/matplotlib/release/osx/Makefile?view=markup JDH
On Tue, Dec 16, 2008 at 3:59 PM, John Hunter <jd...@gm...> wrote: > Just a quick comment -- the symbol _png_destroy_read_struct is not > defined in the png sources I am using (png_destroy_read_struct is). > Thus it looks like a C++ name mangling issue, probably introduced when > the mpl c++ includes and links against the code. Just throwing this > out there in case anyone has advice on special flags to use when > building "universal" binaries to prevent name mangling issues. I *may*, repeat *may*, have had a breakthrough here. It appears that setting the universal flags on the make line is not enough -- they must actually be exported (as Charlie's original notes indicate). Please try again with the new OS X binaries at https://sourceforge.net/project/showfiles.php?group_id=80706&package_id=278194&release_id=646644 I didn't do any clever renaming of the egg this time -- just focusing on the png name manging error. Fingers crossed, JDH
On Tue, Dec 16, 2008 at 2:25 PM, John Hunter <jd...@gm...> wrote: dlopen(/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib-0.98.5.1-py2.5.egg/matplotlib/_png.so, >> 2): Symbol not found: _png_destroy_read_struct >> Referenced from: > > > Well, at least we have a *different* bug to focus on. I'll try and > reproduce this somewhere.... I wonder if this is backend dependent > (eg you are using a backend that also links png and something is > getting confused). Could you try running :: Just a quick comment -- the symbol _png_destroy_read_struct is not defined in the png sources I am using (png_destroy_read_struct is). Thus it looks like a C++ name mangling issue, probably introduced when the mpl c++ includes and links against the code. Just throwing this out there in case anyone has advice on special flags to use when building "universal" binaries to prevent name mangling issues. JDH
On Tue, Dec 16, 2008 at 4:02 PM, Jouni K. Seppänen <jk...@ik...> wrote: > "Jae-Joon Lee" <lee...@gm...> writes: > >> So, Lebostein and j, if you know how to check out using svn, can you >> give a try either the svn trunk or the maintenance branch? I'm >> attaching the patch just in case. > > On the svn trunk, the demo examples/api/legend_demo.py now fails at > "leg.get_texts()" with "AttributeError: 'Legend' object has no attribute > 'texts'". Calling show() seems to fix the legend so that get_texts > works, so I suspect that the bug is related to the _init_legend_box call > that your patch removes. > > -- > Jouni K. Seppänen > http://www.iki.fi/jks > I also see the problem. And, yes, this is related with _init_legend_box. As the paddings and such need to be determined at drawing time, I moved this into the draw() method. The fix may involve some rearrangement of the code. I'll work on it. Thanks, -JJ > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users >
Hi Michael, I may be completely off my rocker here, but I think that you can define the range of Z values that the ramp should be applied to with the Normalize function. cmap = matplotlib.colors.LinearSegmentedColormap('my_colormap',cdict,256) norm = mpl.colors.Normalize(vmin=.0, vmax=1.0) I'm only guessing though, because at this point I only change vmin and vmax to alter the colorbar labels. Roger -- On Tue, Dec 16, 2008 at 1:15 PM, Michael Hearne <mh...@us...> wrote: > I'm trying to replicate the color-mapping behavior of the GMT package with > matplotlib/basemap and the imshow() function, and have run into a problem. > > Using GMT you can assign colors to ranges of Z values, so that (for > example), Z values between 0 and 50 are given a color interpolated between > (0,0,255) (blue) and (255,0,0) (red). There have been various versions of > a function called gmtColorMap() posted to this list. I did some experiments > today, and as far as I can tell, this function only reads the _color_ part > of a GMT .cpt file, ignoring the Z values to which those color ranges are > assigned. This isn't a problem as long as you have a linear color scale. > However, if you have (as in my case) a color scale assigned to non-linear > ranges of values, it becomes a problem. > > Is there a way with imshow() to assign ranges of colors to specific ranges > of Z values? > > As a test, I created the attached python script, which reads in the > attached .cpt file. > > For those of you not aware of the GMT color palette file format, in each > row you define two end points for your Z values, and two corresponding RGB > triplets. In my simplified example, I have defined 8 ranges, and assigned a > single color to each range. For example, the first two lines in my color > palette file looks like this: > > 00000 255 255 255 00005 255 255 255 > 00005 255 255 000 00050 255 255 000 > > which can be interpreted to mean that any values between 0 and 5 (filled in > with zeros to make the columns line up), should be colored white. > Similarly, any values between 5 and 50 should be colored yellow. > > > > > > > > > #!/usr/bin/python > > from matplotlib.colors import LinearSegmentedColormap,Normalize > from pylab import * > > def gmtColormap(fileName): > import colorsys > import numpy as N > try: > f = open(fileName) > except: > print "file ",fileName, "not found" > return None > > lines = f.readlines() > f.close() > > x = [] > r = [] > g = [] > b = [] > colorModel = "RGB" > for l in lines: > ls = l.split() > if l[0] == "#": > if ls[-1] == "HSV": > colorModel = "HSV" > continue > else: > continue > if ls[0] == "B" or ls[0] == "F" or ls[0] == "N": > pass > else: > x.append(float(ls[0])) > r.append(float(ls[1])) > g.append(float(ls[2])) > b.append(float(ls[3])) > xtemp = float(ls[4]) > rtemp = float(ls[5]) > gtemp = float(ls[6]) > btemp = float(ls[7]) > > x.append(xtemp) > r.append(rtemp) > g.append(gtemp) > b.append(btemp) > > nTable = len(r) > x = N.array( x , N.float32) > r = N.array( r , N.float32) > g = N.array( g , N.float32) > b = N.array( b , N.float32) > if colorModel == "HSV": > for i in range(r.shape[0]): > rr,gg,bb = colorsys.hsv_to_rgb(r[i]/360.,g[i],b[i]) > r[i] = rr ; g[i] = gg ; b[i] = bb > if colorModel == "HSV": > for i in range(r.shape[0]): > rr,gg,bb = colorsys.hsv_to_rgb(r[i]/360.,g[i],b[i]) > r[i] = rr ; g[i] = gg ; b[i] = bb > if colorModel == "RGB": > r = r/255. > g = g/255. > b = b/255. > xNorm = (x - x[0])/(x[-1] - x[0]) > > red = [] > blue = [] > green = [] > for i in range(len(x)): > red.append([xNorm[i],r[i],r[i]]) > green.append([xNorm[i],g[i],g[i]]) > blue.append([xNorm[i],b[i],b[i]]) > colorDict = {"red":red, "green":green, "blue":blue} > return (colorDict) > > colormap = 'popcpt.cpt' > cdict = gmtColormap(colormap) > palette = LinearSegmentedColormap('my_colormap',cdict) > > f = figure() > data = array([[2,2,2,2,2], > [25,25,25,25,25], > [75,75,75,75,75], > [250,250,250,250,250], > [750,750,750,750,750], > [2500,2500,2500,2500,2500], > [7500,7500,7500,7500,7500], > [25000,25000,25000,25000,25000]]) > imshow(data,cmap=palette) > #draw grid lines around all the cells > nrows,ncols = data.shape > for row in range(0,nrows): > plot([0,ncols],[row,row],'k') > for col in range(0,ncols): > plot([col,col],[0,nrows],'k') > axis([0,ncols-1,0,nrows]) > colorbar() > savefig('output.png') > close('all') > > > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > _______________________________________________ > Matplotlib-users mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > >
Another note: I was wrong, if I easy_install the egg without the -macosx from scratch, it fails with: Searching for matplotlib-0.98.5.1-py2.5 Reading http://pypi.python.org/simple/matplotlib-0.98.5.1-py2.5/ Couldn't find index page for 'matplotlib-0.98.5.1-py2.5' (maybe misspelled?) Scanning index of all packages (this may take a while) Reading http://pypi.python.org/simple/ No local packages or download links found for matplotlib-0.98.5.1-py2.5 error: Could not find suitable distribution for Requirement.parse('matplotlib-0.98.5.1-py2.5') But now I just ran: easy_install matplotlib-0.98.5.1-py2.5-macosx.egg and it worked just fine -- this is weird! > > python myfile.py -dAgg ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx.egg/matplotlib/_png.so, 2): Symbol not found: _png_destroy_read_struct Referenced from: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/matplotlib-0.98.5.1-py2.5-macosx.egg/matplotlib/_png.so Expected in: dynamic lookup > > python myfile.py -dTkAgg same error > > python myfile.py -dWXAgg same error > > python myfile.py -dPS same error -- why does it need to use png at all with PS? > Could you also test the mpkg zip file -- I am curious if that shows > the same png problems for you. same errors as the egg. Can you test on PPC? I recently had a problem with a wxPython extension -- it build Universal, but only worked on Intel. It turns out that the wxPython binaries were compiled differently on PPC and Intel -- using an older version of gcc on PPC (for 10.3 compatibility maybe?). Anyway, it was a mess, but we fixed it by compiling the extension separately with a bunch of different flags, then lipo-ing the two binaries together. Could anything funky like that be going on here? -Chris -- Christopher Barker, Ph.D. Oceanographer Emergency Response Division NOAA/NOS/OR&R (206) 526-6959 voice 7600 Sand Point Way NE (206) 526-6329 fax Seattle, WA 98115 (206) 526-6317 main reception Chr...@no...
I'm trying to replicate the color-mapping behavior of the GMT package with matplotlib/basemap and the imshow() function, and have run into a problem. Using GMT you can assign colors to ranges of Z values, so that (for example), Z values between 0 and 50 are given a color interpolated between (0,0,255) (blue) and (255,0,0) (red). There have been various versions of a function called gmtColorMap() posted to this list. I did some experiments today, and as far as I can tell, this function only reads the _color_ part of a GMT .cpt file, ignoring the Z values to which those color ranges are assigned. This isn't a problem as long as you have a linear color scale. However, if you have (as in my case) a color scale assigned to non-linear ranges of values, it becomes a problem. Is there a way with imshow() to assign ranges of colors to specific ranges of Z values? As a test, I created the attached python script, which reads in the attached .cpt file. For those of you not aware of the GMT color palette file format, in each row you define two end points for your Z values, and two corresponding RGB triplets. In my simplified example, I have defined 8 ranges, and assigned a single color to each range. For example, the first two lines in my color palette file looks like this: 00000 255 255 255 00005 255 255 255 00005 255 255 000 00050 255 255 000 which can be interpreted to mean that any values between 0 and 5 (filled in with zeros to make the columns line up), should be colored white. Similarly, any values between 5 and 50 should be colored yellow.
Jörgen Stenarson <jor...@bo...> writes: > __date__ = '$Date: 2008年12月15日 21:46:00 +0100 (må, 15 dec 2008) $' > Does anyone know how I can force svn and tortoise svn to not include the > last part with the weekday? I'm not sure if svn always uses utf-8 if > that is the case then we could just add the encoding specification and > everything will work. Does "LC_ALL=C svn update" work for you? The bug report http://subversion.tigris.org/issues/show_bug.cgi?id=2332 implies that it always uses UTF-8, so putting an encoding cookie in the file might be the easiest solution. -- Jouni K. Seppänen http://www.iki.fi/jks