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
|
From: Mark B. <ma...@gm...> - 2015-01-26 19:44:56
|
Hello List, Are there any plans to make ginput work in the nbagg backend? It would be so cool if I could use that in an IPython Notebook together with the other widgets. Thanks, Mark |
From: Byron K. B. <bkb...@be...> - 2015-01-23 14:50:20
|
I’ve worked out how to create a Poly3DCollection as noted by Maximilian Albert and how to use the set_array method on the collection created by plot_trisurf as noted by Geoffroy Billotey. I have two follow up questions: 1) Would it be possible to make it so that if the color parameter of plot_trisurf is an array of length n_triangles, that plot_trisurf would internally use set_array to color the triangles with the colors in the color parameter? 2) Is there a way to color the triangles with gradients? I have an intensity value at each vertex of the triangles so Matlab/octave colors each triangle with a gradient whereas right now I’m taking an average of the values at the vertices and assigning the resulting value to the triangle. Byron Boulton From: Geoffroy Billotey [mailto:geo...@gm...] Sent: Wednesday, January 21, 2015 12:33 PM To: mat...@li...; Byron K. Boulton Subject: Re: [matplotlib-devel] trisurf plots with independent color data Hi, You can also try to pass a *color* array of size ntri (number of triangles) to the *set_array* method of the collection returned by *plot_trisurf*. See for instance: http://stackoverflow.com/questions/24218543/colouring-the-surface-of-a-sphere-with-a-set-of-scalar-values-in-matplotlib/24229480#24229480<http://cp.mcafee.com/d/1jWVIq40USyMCyYUy-qenztPqdQPhOCepshhdETjd7aoVBNOVJ6WpEVj7cK8FCQrFCzBcsOUeKr85i5mPVRw2y7NzbOszP-ndAfz6nAV7DYKrggjZQwM_R-puK-_RXBQSkSu7fcEKsJteOaqJTCel3PWApmU6CQjrVK_9IInojvvpjdTdw0WjSNmFDUKDRcsLwITZ9OH2C9I9ELfIcVqFZmUOwhbP9-nET5TrunGWnQLhoDYvbC9j9BZbQ-puHFuBJfS9sPFXvQbOwnlSqNZpDO8oCMCCqem7HwoCMCCqem7HCOfRttzkJN2hVZp-m1h4jVsSyMMCMr1vF6y0QJGXdo-IPV42W7CvfdbFEwD6l6UKCy1o-IW6y0NapcQgiwxWTMg-4Ph1qFZoCy13pWrsodTc9QClIZK1f8> 2015-01-21 17:02 GMT+01:00 Maximilian Albert <max...@gm...<mailto:max...@gm...>>: Hi Byron, This is a bit of a workaround, but you can specify facecolors explicitly by creating a triangulation of your surface explicitly and creating a Poly3DCollection with these facecolors. I'm attaching an example below which is a modified version of the plot_trisurf demo [1] in the matplotlib documentation. It showcases both random colors and a smooth gradient (the latter in the line that's commented out). I would have thought that it should be possible to pass an argument like "facecolors" to plot_trisurf directly, since the documentation [2] states that "other arguments are passed on to Poly3DCollection". However, I couldn't get this to work quickly. Maybe someone else knows how? Best regards, Max [1] http://matplotlib.org/examples/mplot3d/trisurf3d_demo.html<http://cp.mcafee.com/d/k-Kr6x0SyMCyYUy-qenztPqdQPhOCepshhdETjd7aoVBNOVJ6WpEVj7cK8FCQrFCzBcsOUeKr85i5mPVRw2y7NzbOszP-ndAfz6nAV7DYKrggjZQwM_R-puK-_RXBQSkSu7fcEKsJteOaqJTCel3PWApmU6CQPrVK_9IInojvvpjdTdw0RtCIvmpYy700sYf21_QNlo-ISkcD6l6UKIE2G7GRU76OfRttzkJN2hVZp-m1h4jVsSyMMCMr1vF6y0QJGXdo-IPV42W7CvfdbFEwD6l6UKCy1o-IW6y0NapcQgiwxWTMg-4Ph1qFZoCy13pWrsodCuBsX5L-> [2] http://matplotlib.org/mpl_toolkits/mplot3d/api.html<http://cp.mcafee.com/d/1jWVIq6h8gdEI9ELe8LCzBUTsSztcQsFzCn4kjqdQPhOCepssKrhKCqekNPbyapJ6WpEVj7cK3HCO1kxlI-to0ExYoOYD8Y_BPp3UNBVehV_bCQ44_t8cfZvCnHLLZuVtdBdDxPPabDbnjIyCHtVzBgY-F6lK1FJAS-rLOrb5S4TTSkPtPo0dnpH7RCv8xM075lzNmtqDBpjFyGNZpIEpGQK1NIzZnnoRbsgAuvmvBwkh4-ndEIc9I6MnWhEwdbqKPmfHc-h0KxVDPPiWq89NBhKbFEwmfHexEwciCjd44E8uJY4fxcQgmGvm9EwgSuCT63oeMA92eD> from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplotlib.pyplot as plt import numpy as np from matplotlib.tri import Triangulation from mpl_toolkits.mplot3d.art3d import Poly3DCollection n_angles = 36 n_radii = 8 # An array of radii # Does not include radius r=0, this is to eliminate duplicate points radii = np.linspace(0.125, 1.0, n_radii) # An array of angles angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) # Repeat all angles for each radius angles = np.repeat(angles[...,np.newaxis], n_radii, axis=1) # Convert polar (radii, angles) coords to cartesian (x, y) coords # (0, 0) is added here. There are no duplicate points in the (x, y) plane x = np.append(0, (radii*np.cos(angles)).flatten()) y = np.append(0, (radii*np.sin(angles)).flatten()) # Pringle surface z = np.sin(-x*y) tri = Triangulation(x, y) # NOTE: This assumes that there is a nice projection of the surface into the x/y-plane! triangle_vertices = np.array([np.array([[x[T[0]], y[T[0]], z[T[0]]], [x[T[1]], y[T[1]], z[T[1]]], [x[T[2]], y[T[2]], z[T[2]]]]) for T in tri.triangles]) midpoints = np.average(triangle_vertices, axis=1) def find_color_for_point(pt): x, y, z = pt col = [(y+1)/2, (1-y)/2, 0] return col #facecolors = [find_color_for_point(pt) for pt in midpoints] # smooth gradient facecolors = [np.random.random(3) for pt in midpoints] # random colors coll = Poly3DCollection(triangle_vertices, facecolors=facecolors, edgecolors='black') fig = plt.figure() ax = fig.gca(projection='3d') ax.add_collection(coll) ax.set_xlim(-1, 1) ax.set_ylim(-1, 1) ax.set_zlim(-1, 1) ax.elev = 50 plt.show() ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet<http://cp.mcafee.com/d/avndy0sd6Qm4QnD4nPhOYrKrhKCqekNPbya9J6WpEVj7cKendETjd7aoVBN5cSztcQsFzCn1RPp0GgGSveI0kg-cpujAuvOVIxYoOYD8Y_BPq22vKA67-LPbRTT-LsKCOCPMVVB5PBHFShjlKYNOEuvkzaT0QSMrvdTVdByX2rXXapKVI06JR7u1KktrMz8zUddAvGWX6Fry4zPWPYI2y8DOVJ5xxdwS2_id41FrlSqNZpDO85Qfc-uqnjh1ecGdNtd42NZpQd41ykOpEwB13RLwxY9Cy2RjWNd426PQSUMrFKoBfrL> _______________________________________________ Matplotlib-devel mailing list Mat...@li...<mailto:Mat...@li...> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel<http://cp.mcafee.com/d/5fHCMUi6hEpdEI9ELe8LCzBUTsSztcQsFzCn4kjqdQPhOCepssKrhKCqekNPbyapJ6WpEVj7cK3HCO1kxlI-to0ExYoOYD8Y_BPp3UNBVehV_bCQ44_t8cfZvCnHLLZuVtdBdDxPPabDbnjIyCHtVzBgY-F6lK1FJYS-rLOrb5S4TTSkPtPpesRG9pxYGjFRaJNJXE07-1K7OFeC7OFek7qUHIRzWPfAgbEupYYSh-HHIqBK8iffHfOMa8yvbCQm64S3obZ8Qg6BJnpH7RCv8wngYPVVFtd44UOET5QQgb7RDgQg69j9Cy2k4fm-27MCq8blfH4Qg8rfjrz1I7gc> |
From: Nicolas P. R. <Nic...@in...> - 2015-01-21 19:37:10
|
+1. Great news. Nicolas. > On 21 Jan 2015, at 20:22, Chris Barker <chr...@no...> wrote: > > +1 -- sounds great! > > > > On Tue, Jan 20, 2015 at 7:48 AM, Michael Droettboom <md...@st...> wrote: > Matplotlib > is a widely used, well regarded, and powerful visualization > library that has dominated the Python visualization stack for > over a decade. However, to maintain that position, matplotlib > must continue to evolve. Complementary or alternative > libraries are appearing at an increasing rate, including > browser-based plotting and GPU acceleration. To maintain its > leadership position for the next decade, Matplotlib must > interface with these alternatives while simultaneously > expanding its capabilities and becoming easier to use and > learn. > > > Matplotlib’s > large existing user base (greater than 50,000) means that new > developments need to be carefully balanced with maintaining > existing interfaces. With the large user and code base comes > a significant maintenance and user-support burden. These > responsibilities currently account for a majority of the > core-developer time spent on matplotlib and has resulted in > both the code base and community being in a healthier state > than ever before. Even 6 years ago there was no automated > testing to speak of and the number of contributors continues > to soar on github. However, this effort is, for the most part, > done on a volunteer basis in the nights and weekends of the > core developers. To go beyond this maintenance level—to make > step-change improvements for the benefit of matplotlib’s > users—will require funding for full-time developers. Inspired > and encouraged by the example of IPython, we would like to > begin the process of fundraising. > > > Managing > funding on the needed scale is a complex and time-consuming > process. Thankfully, NumFOCUS, a 501(c)3 charity organisation > co-founded by John Hunter, offers a fiscal sponsorship > agreement to minimize the administrative and legal burden on > open source projects. We would like to enlist NumFOCUS as our > agents in all legal and financial matters, including banking, > accepting donations as a non-profit, payroll, and access to > legal counsel. As part of the agreement, NumFOCUS would > charge a percentage of all funds raised to cover their costs. > The full text of the agreement is attached. > > > To > comply with the legal and accounting requirements of a > non-profit, matplotlib needs to form an administrative body to > interact with NumFOCUS and direct the disbursement of any > funds. The proposed initial members of the body, are myself > (Mike Droettboom), Eric Firing, Phil Elson, and Thomas > Caswell, with Thomas acting as the point of contact with > NumFOCUS. > > > In > practice, signing an FSA will have very little impact on the > matplotlib project itself - it will still be BSD-licensed and > community-driven as it has always been, and the only > motivation for doing this is to give us an opportunity to > apply for funding to do more work on matplotlib. We'd like to > canvas the community's opinion on the matter, but to put a > concrete timeline on the discussion, we would like to propose > signing an FSA with NumFOCUS in 3 weeks (Feb 10th 2015) unless > there is a major community discomfort with us doing so. > > > > > > > Cheers, > > > Michael Droettboom > > > > > > -- > Michael Droettboom > Science Software Branch > Space Telescope Science Institute > > > http://www.droettboom.com > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > > > > -- > > 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... > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet_______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel |
From: Chris B. <chr...@no...> - 2015-01-21 19:23:10
|
+1 -- sounds great! On Tue, Jan 20, 2015 at 7:48 AM, Michael Droettboom <md...@st...> wrote: > > > > > > > > > * Matplotlib is a widely used, well regarded, and powerful visualization > library that has dominated the Python visualization stack for over a > decade. However, to maintain that position, matplotlib must continue to > evolve. Complementary or alternative libraries are appearing at an > increasing rate, including browser-based plotting and GPU acceleration. To > maintain its leadership position for the next decade, Matplotlib must > interface with these alternatives while simultaneously expanding its > capabilities and becoming easier to use and learn. Matplotlib’s large > existing user base (greater than 50,000) means that new developments need > to be carefully balanced with maintaining existing interfaces. With the > large user and code base comes a significant maintenance and user-support > burden. These responsibilities currently account for a majority of the > core-developer time spent on matplotlib and has resulted in both the code > base and community being in a healthier state than ever before. Even 6 > years ago there was no automated testing to speak of and the number of > contributors continues to soar on github. However, this effort is, for the > most part, done on a volunteer basis in the nights and weekends of the core > developers. To go beyond this maintenance level—to make step-change > improvements for the benefit of matplotlib’s users—will require funding for > full-time developers. Inspired and encouraged by the example of IPython, we > would like to begin the process of fundraising. Managing funding on the > needed scale is a complex and time-consuming process. Thankfully, > NumFOCUS, a 501(c)3 charity organisation co-founded by John Hunter, offers > a fiscal sponsorship agreement to minimize the administrative and legal > burden on open source projects. We would like to enlist NumFOCUS as our > agents in all legal and financial matters, including banking, accepting > donations as a non-profit, payroll, and access to legal counsel. As part > of the agreement, NumFOCUS would charge a percentage of all funds raised to > cover their costs. The full text of the agreement is attached. To comply > with the legal and accounting requirements of a non-profit, matplotlib > needs to form an administrative body to interact with NumFOCUS and direct > the disbursement of any funds. The proposed initial members of the body, > are myself (Mike Droettboom), Eric Firing, Phil Elson, and Thomas Caswell, > with Thomas acting as the point of contact with NumFOCUS. In practice, > signing an FSA will have very little impact on the matplotlib project > itself - it will still be BSD-licensed and community-driven as it has > always been, and the only motivation for doing this is to give us an > opportunity to apply for funding to do more work on matplotlib. We'd like > to canvas the community's opinion on the matter, but to put a concrete > timeline on the discussion, we would like to propose signing an FSA with > NumFOCUS in 3 weeks (Feb 10th 2015) unless there is a major community > discomfort with us doing so. Cheers, Michael Droettboom * > > -- > Michael Droettboom > Science Software Branch > Space Telescope Science Institute > http://www.droettboom.com > > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > -- 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... |
From: Geoffroy B. <geo...@gm...> - 2015-01-21 17:33:24
|
Hi, You can also try to pass a *color* array of size ntri (number of triangles) to the *set_array* method of the collection returned by *plot_trisurf*. See for instance: http://stackoverflow.com/questions/24218543/colouring-the-surface-of-a-sphere-with-a-set-of-scalar-values-in-matplotlib/24229480#24229480 2015-01-21 17:02 GMT+01:00 Maximilian Albert <max...@gm...>: > Hi Byron, > > This is a bit of a workaround, but you can specify facecolors explicitly > by creating a triangulation of your surface explicitly and creating a > Poly3DCollection with these facecolors. I'm attaching an example below > which is a modified version of the plot_trisurf demo [1] in the matplotlib > documentation. It showcases both random colors and a smooth gradient (the > latter in the line that's commented out). > > I would have thought that it should be possible to pass an argument like > "facecolors" to plot_trisurf directly, since the documentation [2] states > that "other arguments are passed on to Poly3DCollection". However, I > couldn't get this to work quickly. Maybe someone else knows how? > > Best regards, > Max > > [1] http://matplotlib.org/examples/mplot3d/trisurf3d_demo.html > [2] http://matplotlib.org/mpl_toolkits/mplot3d/api.html > > > > from mpl_toolkits.mplot3d import Axes3D > from matplotlib import cm > import matplotlib.pyplot as plt > import numpy as np > > from matplotlib.tri import Triangulation > from mpl_toolkits.mplot3d.art3d import Poly3DCollection > > n_angles = 36 > n_radii = 8 > > # An array of radii > # Does not include radius r=0, this is to eliminate duplicate points > radii = np.linspace(0.125, 1.0, n_radii) > > # An array of angles > angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) > > # Repeat all angles for each radius > angles = np.repeat(angles[...,np.newaxis], n_radii, axis=1) > > # Convert polar (radii, angles) coords to cartesian (x, y) coords > # (0, 0) is added here. There are no duplicate points in the (x, y) plane > x = np.append(0, (radii*np.cos(angles)).flatten()) > y = np.append(0, (radii*np.sin(angles)).flatten()) > > # Pringle surface > z = np.sin(-x*y) > > tri = Triangulation(x, y) # NOTE: This assumes that there is a nice > projection of the surface into the x/y-plane! > triangle_vertices = np.array([np.array([[x[T[0]], y[T[0]], z[T[0]]], > [x[T[1]], y[T[1]], z[T[1]]], > [x[T[2]], y[T[2]], z[T[2]]]]) for > T in tri.triangles]) > midpoints = np.average(triangle_vertices, axis=1) > > def find_color_for_point(pt): > x, y, z = pt > col = [(y+1)/2, (1-y)/2, 0] > return col > > #facecolors = [find_color_for_point(pt) for pt in midpoints] # smooth > gradient > facecolors = [np.random.random(3) for pt in midpoints] # random colors > > coll = Poly3DCollection(triangle_vertices, facecolors=facecolors, > edgecolors='black') > > fig = plt.figure() > ax = fig.gca(projection='3d') > ax.add_collection(coll) > ax.set_xlim(-1, 1) > ax.set_ylim(-1, 1) > ax.set_zlim(-1, 1) > ax.elev = 50 > > plt.show() > > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > |
From: Byron K. B. <bkb...@be...> - 2015-01-21 17:06:40
|
Thanks. This looks like it might work for me. I got your example to work, but I still need to figure out how to apply it to my problem. In particular there is the note about your Triangulation line which says that we assume there is a nice projection of the surface into the x/y-plane. Is this just a requirement of the Triangulation function or of the Poly3Dcollection? My surfaces are typically enclosed bodies, but since they’re meshed for the Electromagnetic Simulation I already know the connectivity of the vertices. Also, in your example it appears that you define one color per triangle but the trisurf files I have consist of one color per vertex. Will I need to come up with my own function for defining facecolors based on the three color values associated with each of my triangles? Byron Boulton From: Maximilian Albert [mailto:max...@gm...] Sent: Wednesday, January 21, 2015 11:03 AM To: Byron K. Boulton Cc: mat...@li... Subject: Re: [matplotlib-devel] trisurf plots with independent color data Hi Byron, This is a bit of a workaround, but you can specify facecolors explicitly by creating a triangulation of your surface explicitly and creating a Poly3DCollection with these facecolors. I'm attaching an example below which is a modified version of the plot_trisurf demo [1] in the matplotlib documentation. It showcases both random colors and a smooth gradient (the latter in the line that's commented out). I would have thought that it should be possible to pass an argument like "facecolors" to plot_trisurf directly, since the documentation [2] states that "other arguments are passed on to Poly3DCollection". However, I couldn't get this to work quickly. Maybe someone else knows how? Best regards, Max [1] http://matplotlib.org/examples/mplot3d/trisurf3d_demo.html<http://cp.mcafee.com/d/avndygscxNJ5xd5VZN5ZwTsSztcQsFzCn4kjqdQPhOCepssKrhKCqekNPbyapJ6WpEVj7cK3HCO1kxlI-to0ExYoOYD8Y_BPp3UNBVehV_bCZd7a5Di33_nVNcQsTu7tuVtdBZXAkhP3aqvbnjIyCGyyeVkffGhBrwqrhdFCXYCONtxdZZBcTsS03lSqNZpDO8s01PMY87_j5lzWPpgOspkryWOwaEuHnwsrlQfAH8-mMXjO7NC2y8DOVJ55CVEVdwLQzh0qmRtCIvmpYy1t3PfDCBQQgjzazsnjh0Ivmt3h0oBcCq89ggZrU8v2pEwJk-Ijh0xIZdKc6NP69lvVcsZE3> [2] http://matplotlib.org/mpl_toolkits/mplot3d/api.html<http://cp.mcafee.com/d/FZsS86Qm4QnDT4nS3tPqdQPhOCepshhdETjd7aoVBNOVJ6WpEVj7cK8FCQrFCzBcsOUeKr85i5mPVRw2y7NzbOszP-ndAfz6nAV7DYKrQQsEmt8cfZvD4PhPtUtRXBQSnTKhh7ccFFYJteOaqGa8XBgY-F6lK1FJcSCrLOrb5S4TTSkPtPo0dnpH7RCv8xM075lzNmtqDBpjFyGNZpIEpGQK1NJng-iIzVr3Jf8v6oa8yvbCQkmrCzAS2_id41FrlSqNZpDO85Qfc-uqnjh1ecGdNtd42NZpQd41ykOpEwB13RLwxY9Cy2RjWNd426PQSUMrQ0np3acf> from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplotlib.pyplot as plt import numpy as np from matplotlib.tri import Triangulation from mpl_toolkits.mplot3d.art3d import Poly3DCollection n_angles = 36 n_radii = 8 # An array of radii # Does not include radius r=0, this is to eliminate duplicate points radii = np.linspace(0.125, 1.0, n_radii) # An array of angles angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) # Repeat all angles for each radius angles = np.repeat(angles[...,np.newaxis], n_radii, axis=1) # Convert polar (radii, angles) coords to cartesian (x, y) coords # (0, 0) is added here. There are no duplicate points in the (x, y) plane x = np.append(0, (radii*np.cos(angles)).flatten()) y = np.append(0, (radii*np.sin(angles)).flatten()) # Pringle surface z = np.sin(-x*y) tri = Triangulation(x, y) # NOTE: This assumes that there is a nice projection of the surface into the x/y-plane! triangle_vertices = np.array([np.array([[x[T[0]], y[T[0]], z[T[0]]], [x[T[1]], y[T[1]], z[T[1]]], [x[T[2]], y[T[2]], z[T[2]]]]) for T in tri.triangles]) midpoints = np.average(triangle_vertices, axis=1) def find_color_for_point(pt): x, y, z = pt col = [(y+1)/2, (1-y)/2, 0] return col #facecolors = [find_color_for_point(pt) for pt in midpoints] # smooth gradient facecolors = [np.random.random(3) for pt in midpoints] # random colors coll = Poly3DCollection(triangle_vertices, facecolors=facecolors, edgecolors='black') fig = plt.figure() ax = fig.gca(projection='3d') ax.add_collection(coll) ax.set_xlim(-1, 1) ax.set_ylim(-1, 1) ax.set_zlim(-1, 1) ax.elev = 50 plt.show() |
From: Maximilian A. <max...@gm...> - 2015-01-21 16:02:43
|
Hi Byron, This is a bit of a workaround, but you can specify facecolors explicitly by creating a triangulation of your surface explicitly and creating a Poly3DCollection with these facecolors. I'm attaching an example below which is a modified version of the plot_trisurf demo [1] in the matplotlib documentation. It showcases both random colors and a smooth gradient (the latter in the line that's commented out). I would have thought that it should be possible to pass an argument like "facecolors" to plot_trisurf directly, since the documentation [2] states that "other arguments are passed on to Poly3DCollection". However, I couldn't get this to work quickly. Maybe someone else knows how? Best regards, Max [1] http://matplotlib.org/examples/mplot3d/trisurf3d_demo.html [2] http://matplotlib.org/mpl_toolkits/mplot3d/api.html from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm import matplotlib.pyplot as plt import numpy as np from matplotlib.tri import Triangulation from mpl_toolkits.mplot3d.art3d import Poly3DCollection n_angles = 36 n_radii = 8 # An array of radii # Does not include radius r=0, this is to eliminate duplicate points radii = np.linspace(0.125, 1.0, n_radii) # An array of angles angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False) # Repeat all angles for each radius angles = np.repeat(angles[...,np.newaxis], n_radii, axis=1) # Convert polar (radii, angles) coords to cartesian (x, y) coords # (0, 0) is added here. There are no duplicate points in the (x, y) plane x = np.append(0, (radii*np.cos(angles)).flatten()) y = np.append(0, (radii*np.sin(angles)).flatten()) # Pringle surface z = np.sin(-x*y) tri = Triangulation(x, y) # NOTE: This assumes that there is a nice projection of the surface into the x/y-plane! triangle_vertices = np.array([np.array([[x[T[0]], y[T[0]], z[T[0]]], [x[T[1]], y[T[1]], z[T[1]]], [x[T[2]], y[T[2]], z[T[2]]]]) for T in tri.triangles]) midpoints = np.average(triangle_vertices, axis=1) def find_color_for_point(pt): x, y, z = pt col = [(y+1)/2, (1-y)/2, 0] return col #facecolors = [find_color_for_point(pt) for pt in midpoints] # smooth gradient facecolors = [np.random.random(3) for pt in midpoints] # random colors coll = Poly3DCollection(triangle_vertices, facecolors=facecolors, edgecolors='black') fig = plt.figure() ax = fig.gca(projection='3d') ax.add_collection(coll) ax.set_xlim(-1, 1) ax.set_ylim(-1, 1) ax.set_zlim(-1, 1) ax.elev = 50 plt.show() |
From: Byron K. B. <bkb...@be...> - 2015-01-21 13:47:34
|
I often have Electromagnetic surface current data which I use MATLAB's trisurf function to plot. Since the surfaces are 3-dimensional I need a trisurf plotting tool which lets me specify the color of each triangle/vertex. MATLAB's trisurf function allows me to do that by passing it an array of colors (http://www.mathworks.com/help/matlab/ref/trisurf.html) along with the arrays of X, Y, and Z coordinates of vertices. Matplotlib's plot_trisurf from mplot3d only seems to allow me to specify one constant color for the entire trisurf plot or to color the triangles according to the z-coordinates. Are there any plans to add this functionality to mplot3d's plot_trisurf? Does anyone here know how difficult it would be? Byron Boulton |
From: Eric F. <ef...@ha...> - 2015-01-21 05:15:58
|
Tom, Thanks for setting this up. Eric On 2015/01/20 4:38 PM, Thomas Caswell wrote: > The column asignments are tags + open/close status. > > https://waffle.io/matplotlib/matplotlib/settings/columns _should_ drop > you to the webpage that lets you see how they are controlled (you might > need to log in to see it). It has been set up for a while now and no > one has complained about GH breaking, so I think it is pretty > side-effect less. > > Tom > > On Tue Jan 20 2015 at 5:10:47 PM Eric Firing <ef...@ha... > <mailto:ef...@ha...>> wrote: > > Looks good to me. As far as I can see, it is not doing anything that > would interfere with ordinary direct github use. > > What determines the column assignments? A combination of tags and > open/closed status? Is there something else going on? > > Eric > > On 2015/01/20 6:13 AM, Michael Droettboom wrote: > > I like it. I could make some nitpicks, but I think it's clearly > > superior to raw github alone, and on that basis I have no > objections. I > > think we should make sure we don't make the experience using github > > alone any worse, though, as I'm sure for some the familiarity > there from > > other projects will be most important. It doesn't *seem* like it > does, > > but I think it's important to consider. > > > > Mike > > > > On 01/18/2015 04:52 PM, R Hattersley wrote: > >> You need an extra "matplotlib" ... > https://waffle.io/matplotlib/__matplotlib > <https://waffle.io/matplotlib/matplotlib> > >> > >> On 17 January 2015 at 19:29, Thomas Caswell <tca...@gm... > <mailto:tca...@gm...> > >> <mailto:tca...@gm... <mailto:tca...@gm...>>> wrote: > >> > >> Hey all, > >> > >> We have set up waffle.io <http://waffle.io> > <http://waffle.io> to try and help manage > >> our issues: https://waffle.io/matplotlib/ > >> > >> If you have commit rights, you should be able to move the cards > >> around. > >> > >> Any thoughts on this tool? I would like to use this to keep > track > >> of the review state of PRs. > >> > >> Tom > >> > >> > ------------------------------__------------------------------__------------------ > >> New Year. New Location. New Benefits. New Data Center in > Ashburn, VA. > >> GigeNET is offering a free month of service with a new server in > >> Ashburn. > >> Choose from 2 high performing configs, both with 100TB of > bandwidth. > >> Higher redundancy.Lower latency.Increased capacity.Completely > >> compliant. > >> http://p.sf.net/sfu/gigenet > >> _________________________________________________ > >> Matplotlib-devel mailing list > >> Matplotlib-devel@lists.__sourceforge.net > <mailto:Mat...@li...> > >> <mailto:Matplotlib-devel@__lists.sourceforge.net > <mailto:Mat...@li...>> > >> > https://lists.sourceforge.net/__lists/listinfo/matplotlib-__devel > <https://lists.sourceforge.net/lists/listinfo/matplotlib-devel> > >> > >> > >> > >> > >> > ------------------------------__------------------------------__------------------ > >> New Year. New Location. New Benefits. New Data Center in > Ashburn, VA. > >> GigeNET is offering a free month of service with a new server in > Ashburn. > >> Choose from 2 high performing configs, both with 100TB of bandwidth. > >> Higher redundancy.Lower latency.Increased capacity.Completely > compliant. > >> http://p.sf.net/sfu/gigenet > >> > >> > >> _________________________________________________ > >> Matplotlib-devel mailing list > >> Matplotlib-devel@lists.__sourceforge.net > <mailto:Mat...@li...> > >> > https://lists.sourceforge.net/__lists/listinfo/matplotlib-__devel > <https://lists.sourceforge.net/lists/listinfo/matplotlib-devel> > > > > > > -- > > Michael Droettboom > > Science Software Branch > > Space Telescope Science Institute > > > > http://www.droettboom.com > > > > > > > > > ------------------------------__------------------------------__------------------ > > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > > GigeNET is offering a free month of service with a new server in > Ashburn. > > Choose from 2 high performing configs, both with 100TB of bandwidth. > > Higher redundancy.Lower latency.Increased capacity.Completely > compliant. > > http://p.sf.net/sfu/gigenet > > > > > > > > _________________________________________________ > > Matplotlib-devel mailing list > > Matplotlib-devel@lists.__sourceforge.net > <mailto:Mat...@li...> > > https://lists.sourceforge.net/__lists/listinfo/matplotlib-__devel > <https://lists.sourceforge.net/lists/listinfo/matplotlib-devel> > > > > > ------------------------------__------------------------------__------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in > Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _________________________________________________ > Matplotlib-devel mailing list > Matplotlib-devel@lists.__sourceforge.net > <mailto:Mat...@li...> > https://lists.sourceforge.net/__lists/listinfo/matplotlib-__devel > <https://lists.sourceforge.net/lists/listinfo/matplotlib-devel> > |
From: Michiel de H. <mjl...@ya...> - 2015-01-21 04:07:39
|
+1 Best, -Michiel -------------------------------------------- On Wed, 1/21/15, Michael Droettboom <md...@st...> wrote: Subject: [Matplotlib-users] Matplotlib and Numfocus Fiscal Sponsorship Agreement (FSA) To: "mat...@li..." <mat...@li...>, "matplotlib-users" <mat...@li...> Date: Wednesday, January 21, 2015, 12:48 AM Matplotlib is a widely used, well regarded, and powerful visualization library that has dominated the Python visualization stack for over a decade. However, to maintain that position, matplotlib must continue to evolve. Complementary or alternative libraries are appearing at an increasing rate, including browser-based plotting and GPU acceleration. To maintain its leadership position for the next decade, Matplotlib must interface with these alternatives while simultaneously expanding its capabilities and becoming easier to use and learn. Matplotlib’s large existing user base (greater than 50,000) means that new developments need to be carefully balanced with maintaining existing interfaces. With the large user and code base comes a significant maintenance and user-support burden. These responsibilities currently account for a majority of the core-developer time spent on matplotlib and has resulted in both the code base and community being in a healthier state than ever before. Even 6 years ago there was no automated testing to speak of and the number of contributors continues to soar on github. However, this effort is, for the most part, done on a volunteer basis in the nights and weekends of the core developers. To go beyond this maintenance level—to make step-change improvements for the benefit of matplotlib’s users—will require funding for full-time developers. Inspired and encouraged by the example of IPython, we would like to begin the process of fundraising. Managing funding on the needed scale is a complex and time-consuming process. Thankfully, NumFOCUS, a 501(c)3 charity organisation co-founded by John Hunter, offers a fiscal sponsorship agreement to minimize the administrative and legal burden on open source projects. We would like to enlist NumFOCUS as our agents in all legal and financial matters, including banking, accepting donations as a non-profit, payroll, and access to legal counsel. As part of the agreement, NumFOCUS would charge a percentage of all funds raised to cover their costs. The full text of the agreement is attached. To comply with the legal and accounting requirements of a non-profit, matplotlib needs to form an administrative body to interact with NumFOCUS and direct the disbursement of any funds. The proposed initial members of the body, are myself (Mike Droettboom), Eric Firing, Phil Elson, and Thomas Caswell, with Thomas acting as the point of contact with NumFOCUS. In practice, signing an FSA will have very little impact on the matplotlib project itself - it will still be BSD-licensed and community-driven as it has always been, and the only motivation for doing this is to give us an opportunity to apply for funding to do more work on matplotlib. We'd like to canvas the community's opinion on the matter, but to put a concrete timeline on the discussion, we would like to propose signing an FSA with NumFOCUS in 3 weeks (Feb 10th 2015) unless there is a major community discomfort with us doing so. Cheers, Michael Droettboom -- Michael Droettboom Science Software Branch Space Telescope Science Institute http://www.droettboom.com -----Inline Attachment Follows----- ------------------------------------------------------------------------------ New Year. New Location. New Benefits. New Data Center in Ashburn, VA. GigeNET is offering a free month of service with a new server in Ashburn. Choose from 2 high performing configs, both with 100TB of bandwidth. Higher redundancy.Lower latency.Increased capacity.Completely compliant. http://p.sf.net/sfu/gigenet -----Inline Attachment Follows----- _______________________________________________ Matplotlib-users mailing list Mat...@li... https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
From: Thomas C. <tca...@gm...> - 2015-01-21 02:38:19
|
The column asignments are tags + open/close status. https://waffle.io/matplotlib/matplotlib/settings/columns _should_ drop you to the webpage that lets you see how they are controlled (you might need to log in to see it). It has been set up for a while now and no one has complained about GH breaking, so I think it is pretty side-effect less. Tom On Tue Jan 20 2015 at 5:10:47 PM Eric Firing <ef...@ha...> wrote: > Looks good to me. As far as I can see, it is not doing anything that > would interfere with ordinary direct github use. > > What determines the column assignments? A combination of tags and > open/closed status? Is there something else going on? > > Eric > > On 2015/01/20 6:13 AM, Michael Droettboom wrote: > > I like it. I could make some nitpicks, but I think it's clearly > > superior to raw github alone, and on that basis I have no objections. I > > think we should make sure we don't make the experience using github > > alone any worse, though, as I'm sure for some the familiarity there from > > other projects will be most important. It doesn't *seem* like it does, > > but I think it's important to consider. > > > > Mike > > > > On 01/18/2015 04:52 PM, R Hattersley wrote: > >> You need an extra "matplotlib" ... https://waffle.io/matplotlib/ > matplotlib > >> > >> On 17 January 2015 at 19:29, Thomas Caswell <tca...@gm... > >> <mailto:tca...@gm...>> wrote: > >> > >> Hey all, > >> > >> We have set up waffle.io <http://waffle.io> to try and help manage > >> our issues: https://waffle.io/matplotlib/ > >> > >> If you have commit rights, you should be able to move the cards > >> around. > >> > >> Any thoughts on this tool? I would like to use this to keep track > >> of the review state of PRs. > >> > >> Tom > >> > >> ------------------------------------------------------------ > ------------------ > >> New Year. New Location. New Benefits. New Data Center in Ashburn, > VA. > >> GigeNET is offering a free month of service with a new server in > >> Ashburn. > >> Choose from 2 high performing configs, both with 100TB of bandwidth. > >> Higher redundancy.Lower latency.Increased capacity.Completely > >> compliant. > >> http://p.sf.net/sfu/gigenet > >> _______________________________________________ > >> Matplotlib-devel mailing list > >> Mat...@li... > >> <mailto:Mat...@li...> > >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > >> > >> > >> > >> > >> ------------------------------------------------------------ > ------------------ > >> New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > >> GigeNET is offering a free month of service with a new server in > Ashburn. > >> Choose from 2 high performing configs, both with 100TB of bandwidth. > >> Higher redundancy.Lower latency.Increased capacity.Completely compliant. > >> http://p.sf.net/sfu/gigenet > >> > >> > >> _______________________________________________ > >> Matplotlib-devel mailing list > >> Mat...@li... > >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > > > > > -- > > Michael Droettboom > > Science Software Branch > > Space Telescope Science Institute > > > > http://www.droettboom.com > > > > > > > > ------------------------------------------------------------ > ------------------ > > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > > GigeNET is offering a free month of service with a new server in Ashburn. > > Choose from 2 high performing configs, both with 100TB of bandwidth. > > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > > http://p.sf.net/sfu/gigenet > > > > > > > > _______________________________________________ > > Matplotlib-devel mailing list > > Mat...@li... > > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > > > > ------------------------------------------------------------ > ------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > |
From: Eric F. <ef...@ha...> - 2015-01-20 22:10:15
|
Looks good to me. As far as I can see, it is not doing anything that would interfere with ordinary direct github use. What determines the column assignments? A combination of tags and open/closed status? Is there something else going on? Eric On 2015/01/20 6:13 AM, Michael Droettboom wrote: > I like it. I could make some nitpicks, but I think it's clearly > superior to raw github alone, and on that basis I have no objections. I > think we should make sure we don't make the experience using github > alone any worse, though, as I'm sure for some the familiarity there from > other projects will be most important. It doesn't *seem* like it does, > but I think it's important to consider. > > Mike > > On 01/18/2015 04:52 PM, R Hattersley wrote: >> You need an extra "matplotlib" ... https://waffle.io/matplotlib/matplotlib >> >> On 17 January 2015 at 19:29, Thomas Caswell <tca...@gm... >> <mailto:tca...@gm...>> wrote: >> >> Hey all, >> >> We have set up waffle.io <http://waffle.io> to try and help manage >> our issues: https://waffle.io/matplotlib/ >> >> If you have commit rights, you should be able to move the cards >> around. >> >> Any thoughts on this tool? I would like to use this to keep track >> of the review state of PRs. >> >> Tom >> >> ------------------------------------------------------------------------------ >> New Year. New Location. New Benefits. New Data Center in Ashburn, VA. >> GigeNET is offering a free month of service with a new server in >> Ashburn. >> Choose from 2 high performing configs, both with 100TB of bandwidth. >> Higher redundancy.Lower latency.Increased capacity.Completely >> compliant. >> http://p.sf.net/sfu/gigenet >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> <mailto:Mat...@li...> >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> >> >> >> >> ------------------------------------------------------------------------------ >> New Year. New Location. New Benefits. New Data Center in Ashburn, VA. >> GigeNET is offering a free month of service with a new server in Ashburn. >> Choose from 2 high performing configs, both with 100TB of bandwidth. >> Higher redundancy.Lower latency.Increased capacity.Completely compliant. >> http://p.sf.net/sfu/gigenet >> >> >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > > -- > Michael Droettboom > Science Software Branch > Space Telescope Science Institute > > http://www.droettboom.com > > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > > > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > |
From: Michael D. <md...@st...> - 2015-01-20 16:13:51
|
I like it. I could make some nitpicks, but I think it's clearly superior to raw github alone, and on that basis I have no objections. I think we should make sure we don't make the experience using github alone any worse, though, as I'm sure for some the familiarity there from other projects will be most important. It doesn't *seem* like it does, but I think it's important to consider. Mike On 01/18/2015 04:52 PM, R Hattersley wrote: > You need an extra "matplotlib" ... https://waffle.io/matplotlib/matplotlib > > On 17 January 2015 at 19:29, Thomas Caswell <tca...@gm... > <mailto:tca...@gm...>> wrote: > > Hey all, > > We have set up waffle.io <http://waffle.io> to try and help manage > our issues: https://waffle.io/matplotlib/ > > If you have commit rights, you should be able to move the cards > around. > > Any thoughts on this tool? I would like to use this to keep track > of the review state of PRs. > > Tom > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in > Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely > compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > <mailto:Mat...@li...> > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > > > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel -- Michael Droettboom Science Software Branch Space Telescope Science Institute http://www.droettboom.com |
From: Michael D. <md...@st...> - 2015-01-20 15:48:12
|
* Matplotlib is a widely used, well regarded, and powerful visualization library that has dominated the Python visualization stack for over a decade. However, to maintain that position, matplotlib must continue to evolve. Complementary or alternative libraries are appearing at an increasing rate, including browser-based plotting and GPU acceleration. To maintain its leadership position for the next decade, Matplotlib must interface with these alternatives while simultaneously expanding its capabilities and becoming easier to use and learn. Matplotlib’s large existing user base (greater than 50,000) means that new developments need to be carefully balanced with maintaining existing interfaces. With the large user and code base comes a significant maintenance and user-support burden. These responsibilities currently account for a majority of the core-developer time spent on matplotlib and has resulted in both the code base and community being in a healthier state than ever before. Even 6 years ago there was no automated testing to speak of and the number of contributors continues to soar on github. However, this effort is, for the most part, done on a volunteer basis in the nights and weekends of the core developers. To go beyond this maintenance level—to make step-change improvements for the benefit of matplotlib’s users—will require funding for full-time developers. Inspired and encouraged by the example of IPython, we would like to begin the process of fundraising. Managing funding on the needed scale is a complex and time-consuming process. Thankfully, NumFOCUS, a 501(c)3 charity organisation co-founded by John Hunter, offers a fiscal sponsorship agreement to minimize the administrative and legal burden on open source projects. We would like to enlist NumFOCUS as our agents in all legal and financial matters, including banking, accepting donations as a non-profit, payroll, and access to legal counsel. As part of the agreement, NumFOCUS would charge a percentage of all funds raised to cover their costs. The full text of the agreement is attached. To comply with the legal and accounting requirements of a non-profit, matplotlib needs to form an administrative body to interact with NumFOCUS and direct the disbursement of any funds. The proposed initial members of the body, are myself (Mike Droettboom), Eric Firing, Phil Elson, and Thomas Caswell, with Thomas acting as the point of contact with NumFOCUS. In practice, signing an FSA will have very little impact on the matplotlib project itself - it will still be BSD-licensed and community-driven as it has always been, and the only motivation for doing this is to give us an opportunity to apply for funding to do more work on matplotlib. We'd like to canvas the community's opinion on the matter, but to put a concrete timeline on the discussion, we would like to propose signing an FSA with NumFOCUS in 3 weeks (Feb 10th 2015) unless there is a major community discomfort with us doing so. Cheers, Michael Droettboom * -- Michael Droettboom Science Software Branch Space Telescope Science Institute http://www.droettboom.com |
From: Benjamin R. <bre...@gm...> - 2015-01-20 14:55:27
|
I wondered if someone could take a look at Issue #3918 (https://github.com/matplotlib/matplotlib/issues/3918). As you can see in my last two posts, everything works fine if I have one bbox image or if I don't save as a pdf. However, if I have two bbox images, the images move when I save as a pdf. This seems like a relatively small issue to fix, so I have tried to debug the problem, but I have been unable to find the source of the issue. If anyone could point me toward where the problematic code is, I would be happy to fix it, test it, and submit the PR. -Ben (Stretch97) |
From: R H. <rha...@gm...> - 2015-01-18 21:52:50
|
You need an extra "matplotlib" ... https://waffle.io/matplotlib/matplotlib On 17 January 2015 at 19:29, Thomas Caswell <tca...@gm...> wrote: > Hey all, > > We have set up waffle.io to try and help manage our issues: > https://waffle.io/matplotlib/ > > If you have commit rights, you should be able to move the cards around. > > Any thoughts on this tool? I would like to use this to keep track of the > review state of PRs. > > Tom > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > |
From: Benjamin R. <ben...@ou...> - 2015-01-17 23:43:22
|
Same here... and you are making me hungry! On Sat, Jan 17, 2015 at 3:28 PM, Eric Firing <ef...@ha...> wrote: > On 2015/01/17 9:29 AM, Thomas Caswell wrote: > > Hey all, > > > > We have set up waffle.io <http://waffle.io> to try and help manage our > > issues: https://waffle.io/matplotlib/ > > That link gives me a 404. > > Eric > > > > > If you have commit rights, you should be able to move the cards around. > > > > Any thoughts on this tool? I would like to use this to keep track of the > > review state of PRs. > > > > Tom > > > > > > ------------------------------------------------------------------------------ > New Year. New Location. New Benefits. New Data Center in Ashburn, VA. > GigeNET is offering a free month of service with a new server in Ashburn. > Choose from 2 high performing configs, both with 100TB of bandwidth. > Higher redundancy.Lower latency.Increased capacity.Completely compliant. > http://p.sf.net/sfu/gigenet > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > |
From: Eric F. <ef...@ha...> - 2015-01-17 20:51:54
|
On 2015/01/17 9:29 AM, Thomas Caswell wrote: > Hey all, > > We have set up waffle.io <http://waffle.io> to try and help manage our > issues: https://waffle.io/matplotlib/ That link gives me a 404. Eric > > If you have commit rights, you should be able to move the cards around. > > Any thoughts on this tool? I would like to use this to keep track of the > review state of PRs. > > Tom > |
From: Thomas C. <tca...@gm...> - 2015-01-17 19:29:48
|
Hey all, We have set up waffle.io to try and help manage our issues: https://waffle.io/matplotlib/ If you have commit rights, you should be able to move the cards around. Any thoughts on this tool? I would like to use this to keep track of the review state of PRs. Tom |
From: Thomas C. <tca...@gm...> - 2015-01-13 05:08:21
|
Hello all, I would like to try to hit the Feb 1 target date for 1.4.3 and plan to do an RC next Monday (Jan 19). Any major protests from anyone on this timeline? If people could take a look at the 1.4.3 and 1.4.x milestones on github and either move stuff around (in terms of finding any blockers) or to get some of the issues (in particular the quiver and documentation related ones) taken care of that would be great! Tom |
From: Eric F. <ef...@ha...> - 2015-01-09 20:01:20
|
On 2015/01/09 9:54 AM, Paul Ganssle wrote: > Thanks for the responses. If no one minds, I'm take a look at how to > best implement datetime64 this weekend and the degree to which it might > be useful, then maybe I can start an MEP for it. Paul, I think everyone will be delighted to have you do this--preferably all the way to a PR. > > I agree with Chris's sentiment that it's likely not a bad idea to start > on it now, since there will almost certainly be a significant lag in > raising the Numpy dependency version anyway, so if it can be implemented > in some reasonable way now, we might as well, otherwise it may be some > years before we get to it. > Yes, by all means. Eric |
From: Paul G. <pga...@gm...> - 2015-01-09 19:54:54
|
Thanks for the responses. If no one minds, I'm take a look at how to best implement datetime64 this weekend and the degree to which it might be useful, then maybe I can start an MEP for it. I agree with Chris's sentiment that it's likely not a bad idea to start on it now, since there will almost certainly be a significant lag in raising the Numpy dependency version anyway, so if it can be implemented in some reasonable way now, we might as well, otherwise it may be some years before we get to it. Let's say we want a time zone aware date time converter. The basic goal is to convert some input type (datetime) to the MPL internal type (float days past Jan 0, 0001). We also need to tell MPL how to format the axis (default formatter, locator, limits, label). - The convert() method takes the input type (datetime) and the xunits (or yunits) keyword argument and converts it to the MPL type. The axis input can be used to change the results depending on the plot type (polar plots always require radians for example). For the TZ converter, would take the input value (datetime), convert it to the time zone requested by the units input, then convert that to a float using dates.date2num(). Note that the input can be a sequence or a single value so the converter has to handle both cases. - The axisinfo() method is used to provide the default axis locator and formatter objects when the user creates a plot with this type. The axis input is useful here to handle the result differently for a polar plot. For the TZ converter, this would be exactly the same as the web docs - return the default locator and formatter for dates. Most of the time this method can just return standard MPL formatters and locators (for either dates or numbers). - The default_units() method provides a default value for the xunits or yunits keyword argument if one isn't specified. The default in this case might be "UTC". Hope that helps some, if you have more specific questions feel free to send them to me. Ted ------------------------------ *From:* Thomas Caswell [tca...@gm...] *Sent:* Thursday, January 08, 2015 11:14 AM *To:* Drain, Theodore R (392P); mat...@li... *Subject:* Re: [matplotlib-devel] Date overhaul? I was hoping for something a bit more extensive of the intenals. I have tried to understand the units code a couple of times now and always hit a brick wall. On Thu Jan 08 2015 at 2:07:02 PM Drain, Theodore R (392P) < the...@jp...> wrote: > Google search "matplotlib units" yields: > http://matplotlib.org/api/units_api.html > > > > So it sounds like the update is to make MPL's internal date system higher > resolution which would be great. We would just need to update our > converters to convert to that format instead of the current floating point > format. Our custom classes are not public (and can't really be made > public) but they aren't very complicated so we can certainly talk about the > implementation if that helps. > > > ------------------------------ > *From:* Thomas Caswell [tca...@gm...] > *Sent:* Thursday, January 08, 2015 10:57 AM > *To:* Drain, Theodore R (392P); mat...@li... > > *Subject:* Re: [matplotlib-devel] Date overhaul? > One of the other driving factors to over-haul the default date > handling is that floats do not have enough precision to deal with > nano-second resolution data (which is what I think drove pandas to use > datetime64). > > It sounds like the correct solution > > Is the unit framework documented anywhere and are those custom classes > public? > > Tom > > On Thu Jan 08 2015 at 12:59:17 PM Drain, Theodore R (392P) < > the...@jp...> wrote: > >> I agree w/ the original poster that it would help to have a MEP to >> clearly define what the goals of the overhaul are >> >> >> >> Something else to keep in mind: we at least don't normally plot dates in >> "earth" based time systems. ~10 years ago we contracted with John Hunter >> to add the arbitrary unit system to MPL. This allows users to plot in >> their own data types and define a converter to handle the conversion to MPL >> types and labeling. We have our own "date time" like class which handles >> relativistic time scales (TDB, TT, TAI, GPS, Mars time, etc) at extremely >> high precision. We register a unit converter w/ MPL which allows our users >> to plot these types natively and use the xunits keyword (or yunits) to >> control how the plot looks. So we can do this: >> >> >> >> plot( x, y, xunits="GPS", yunits="km/s" ) >> >> plot( x, y, xunits="PST", yunits="mph" ) >> >> >> >> It would also be pretty easy to add a time zone aware unit converter with >> the existing MPL code which would allow you to do things w/ datetime like >> this: >> >> >> >> plot( x, y, xunits="UTC+8" ) >> >> plot( x, y, xunits="EST" ) >> >> >> >> I guess the point of this is to remind folks that not everyone plots >> dates in time zone based systems... >> >> >> >> Ted >> >> >> ------------------------------ >> *From:* Chris Barker [chr...@no...] >> *Sent:* Thursday, January 08, 2015 9:00 AM >> *To:* mat...@li... >> *Subject:* Re: [matplotlib-devel] Date overhaul? >> >> On Thu, Jan 8, 2015 at 7:04 AM, Skip Montanaro <sk...@po...> >> wrote: >> >>> I'm real naive about this stuff, but I have always wondered why >>> matplotlib didn't just use datetime objects, or at least use >>> timezone-aware datetime objects as an "interchange" format to get the >>> timezone stuff right. >>> >> >> Time zone handling is a pain in the %}€* >> >> And the definitions keep changing. >> >> So you need a complex DB and library that needs frequent updating. >> >> This is why neither the standard library nor numpy support time zone >> handling out of the box. >> >> But the datetime object does support a hook to add timezone info. >> >> The numpy datetime64 may implementation _may_ provide a similar hook >> in the future. >> >> There is the pytz package, which MPL could choose to depend on. >> >> But even that is a bit ugly--e.g. from the pytz docs: >> >> """Unfortunately using the tzinfo argument of the standard datetime >> constructors ‘’does not work’’ with pytz for many timezones.""" >> >> So my suggestion is that MPL punts, and stick with leaving time zone >> handling up to the user, I.e only use datetimes that are timezone "naive". >> What this means is that MPL would always a assume all datetimes interacting >> with each other are in the same time zone (including same DST status). >> >> Anyway, I'm being a bit lazy here, so I may be wrong, but I think the >> issue at hand is that MPL currently uses a float array to store and >> manipulate datetimes, and the thought is that it may be better to use >> numpy datetime64 arrays -- that would give us more consistent precision, >> and less code to convert to/from various datetime formats. >> I'm a bit on the fence about whether it's time to do it, as datetime64 >> does have issues with the locale timezone, but as any implementation would >> want to work with not-just-the-latest numpy anyway, it may make sense to >> start now. >> >> -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... >> ------------------------------------------------------------ >> ------------------ >> Dive into the World of Parallel Programming! The Go Parallel Website, >> sponsored by Intel and developed in partnership with Slashdot Media, is >> your >> hub for all things parallel software development, from weekly thought >> leadership blogs to news, videos, case studies, tutorials and more. Take a >> look and join the conversation now. http://goparallel.sourceforge.net >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> > ------------------------------------------------------------ > ------------------ > Dive into the World of Parallel Programming! The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > ------------------------------------------------------------------------------ Dive into the World of Parallel Programming! The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net _______________________________________________ Matplotlib-devel mailing list Mat...@li... https://lists.sourceforge.net/lists/listinfo/matplotlib-devel |
From: Tony Yu <ts...@gm...> - 2015-01-09 02:11:22
|
Thanks Max! I was planning to add a more interactive interface, really similar to what you're suggesting. I haven't gotten around to it, but hopefully, I'll have some time to play around with that. On Thu, Jan 8, 2015 at 4:56 PM, Maximilian Albert < max...@gm...> wrote: > Hi Tony, > > This is awesome. Great work! > > I was wondering, is there an easy way to cycle through all available > styles for a given plot? For instance, clicking on the top left plot > displays a maximized image of the "bmh" style. It would be great if one > could press arrow-down (say) to cycle through the other styles > "dark_background", "fivethirtyeight", etc. for a quick comparison. > > Cheers, > Max > > > 2015-01-06 4:42 GMT+00:00 Tony Yu <ts...@gm...>: > >> I've been playing around with learning Javascript lately. As part of the >> process, I created a Flask app to build a gallery for matplotlib style >> sheets: >> >> https://github.com/tonysyu/matplotlib-style-gallery >> >> If you run that locally, you can actually input styles, either with a URL >> to a *.mplstyle file or with matplotlibrc commands. Here's a static version >> without the custom inputs: >> >> http://tonysyu.github.io/raw_content/matplotlib-style-gallery/gallery.html >> >> Ideally, I'd get this into a form that could be submitted as a PR for the >> matplotlib website, but I'll need a bit more spare time to learn some more >> web development (sessions, client storage, etc). >> >> Cheers! >> -Tony >> >> >> ------------------------------------------------------------------------------ >> Dive into the World of Parallel Programming! The Go Parallel Website, >> sponsored by Intel and developed in partnership with Slashdot Media, is >> your >> hub for all things parallel software development, from weekly thought >> leadership blogs to news, videos, case studies, tutorials and more. Take a >> look and join the conversation now. http://goparallel.sourceforge.net >> _______________________________________________ >> Matplotlib-devel mailing list >> Mat...@li... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-devel >> >> > |
From: Nathaniel S. <nj...@po...> - 2015-01-09 01:17:29
|
On Thu, Jan 8, 2015 at 10:30 PM, Maximilian Albert <max...@gm...> wrote: > Hi Nathaniel, > >> >> > Basically, it allows you to pick the start/end color of a colormap from >> > two >> > cross sections in CIELab space and interpolates those colors linearly >> > (see >> > the README file for more details). >> >> There's a downside to this approach for the kinds of colormaps we've >> been talking about in this thread, where we want both a large >> lightness range plus a colorful result. The problem is that the way >> color space is shaped, you can't simultaneously have both high >> saturation (colorfulness) *and* high/low lightness. So if you pick >> your extreme points to be near black and white, then they can only >> have a slight tinting of color, and then if you linearly interpolate >> between these, then you end up with slightly tinted greyscale. > > > You raise an excellent point here. It explains nicely what I have > experienced while playing with my GUI. Indeed, I found that a simple linear > interpolation did not result in totally satisfactory colormaps (see my > previous reply to Federico). I couldn't quite explain why, but your > explanation makes this clear. > > One exception I encountered is an interpolation between dark blue and yellow > as in the attached screenshot (which I hope makes it through to the mailing > list) - probably because it mostly avoids the low-saturation (grey-ish) > region of the color space. I guess this probably also has to do with another weird feature of how the colorspace is shaped. You'll often see pictures in books that illustrate it like two cones: http://www.tvtechnology.com/BE_Files/uploads/2013/05/ColorTopCones-305be18.jpg which does capture the general idea that your range of saturations is widest when lightness is in the middle, and narrows down when you move towards black or white. But it's actually a bit more complicated than that -- the actual shape is sorta lumpy, more like the picture here: http://www.gamutvision.com/ In particular, you can have pretty-saturated blues even at very low lightnesses, and pretty-saturated yellows even at high lightnesses. E.g. there literally does not exist a dark red that's as intense as the most intense dark blue. So this makes dark-blue-to-light-yellow the obvious way to go if you want a dark-to-light colormap that is also colorful. I don't think it's a coincidence that parula does exactly this :-) There is an obvious degree of freedom here though -- the color wheel is, like, a wheel, so if you want to go from blue to yellow you can do that either clockwise or counterclockwise, i.e., you can go through green or you can go through red. Parula goes via green (and so does matplotlib's YlGnBu, for that matter). If we want to have a distinctive colormap that people won't confuse with Matlab(R)(TM) then maybe we should make a blue-purple-red-yellow one. And in fact, this is probably theoretically optimal! As another weird quirk of how color works, the 4 focal colors (red/green/blue/yellow) are not actually at right angles to each other on the hue circle -- see the lower diagram on this figure: https://books.google.co.uk/books?id=MZ-TM0f2twAC&lpg=PA323&ots=XB_jHt0wz1&dq=%22the%20cie%20colour%20appearance%20model%22%20hunt%20and%20pointer&pg=PA307#v=onepage&q&f=false >From yellow-to-blue via red is a ~213 degree angle, while yellow-to-blue-via-green is only a ~147 degree angle (in a space where we define our "hue angle" based on perceptual just-noticeable-differences). So a blue-purple-red-yellow colormap should theoretically have higher perceptual resolution than a blue-green-yellow colormap. > But I agree with you that using a curved, rather > than linear, interpolation can probably yield better results. > > It sounds like you have a good deal of experience with various color spaces > and colormaps. Do you have an idea for a good "recipe" how to pick a curve > in a given colorspace that leads to a satisfactory colormap? I haven't tried it yet, but my first idea would be to say that I want a linear ramp in lightness (CIECAM02's "J"), and a linear ramp in hue (CIECAM02's "h"), that starts at blue and ends at yellow, and then run an optimizer to try and find a set of colorfulness values (CIECAM02's "M") that maximize some criteria, i.e.: -- need to stay within the sRGB gamut -- the points should be as close to equidistant as possible (measured in CAM02-UCS space) -- the total arc should be as long as possible (measured in CAM02-UCS space) (this forces it to use the large colorfulness values when available) -- and maybe some sort of wiggliness penalty (integral of squared third derivative or something?) to smooth it out a bit Then it just becomes an optimization problem -- given any proposed set of JMh values we can convert into sRGB to check the gamut, convert in CAM02-UCS to check the distances, etc., and compute an objective function. > My first idea > was to change the interpolating line to a circular arc passing through an > "intermediate" color, but it's not clear to me whether there is any > preferred "direction" for nudging the line into an arc. Also, most other > colormaps, such as the examples "YlGnBu" and "cubehelix" which you > mentioned, use more complicated curves than mere circular arcs (btw, kudos > for your script - it's a great way of visualising these colormaps). I don't > have enough knowledge yet to decide whether either approach is better. I've > started toying with curved interpolations in my code but this is not quite > ready to be pushed to Github yet. Anyway, if you have any suggestions I'd > love to hear them. > > I also found a few more blog posts and papers which I hadn't seen before and > which look extremely useful: > > (i) "Subtleties of color" > > http://earthobservatory.nasa.gov/blogs/elegantfigures/2013/08/05/subtleties-of-color-part-1-of-6/ > > A series of six blog posts with an excellent introduction to color theory > and the issues around choosing colormaps. Well worth a read! It also > suggests that CIE L*c*h* space (which uses the three variables lightness, > chroma (saturation) and hue), may be a better choice than CIE L*a*b*, which > I have been using so far. They're kinda the same thing -- c*h* is just the polar coordinates version of a*b*, so you can switch back and forth depending on which way of thinking about things feels more natural for a given task. Of course if you do linear interpolation in polar coordinates you get some sort of funky curve, so I guess it would make a difference that way :-). (And the Mh that I talk about above are also conceptually just a polar coordinates version of a and b -- the CIECAM02 calculations literally have intermediate values called a and b that play the same role as CIEL*a*b*'s a* and b*.) -n -- Nathaniel J. Smith Postdoctoral researcher - Informatics - University of Edinburgh http://vorpus.org |
From: Maximilian A. <max...@gm...> - 2015-01-08 22:56:18
|
Hi Tony, This is awesome. Great work! I was wondering, is there an easy way to cycle through all available styles for a given plot? For instance, clicking on the top left plot displays a maximized image of the "bmh" style. It would be great if one could press arrow-down (say) to cycle through the other styles "dark_background", "fivethirtyeight", etc. for a quick comparison. Cheers, Max 2015-01-06 4:42 GMT+00:00 Tony Yu <ts...@gm...>: > I've been playing around with learning Javascript lately. As part of the > process, I created a Flask app to build a gallery for matplotlib style > sheets: > > https://github.com/tonysyu/matplotlib-style-gallery > > If you run that locally, you can actually input styles, either with a URL > to a *.mplstyle file or with matplotlibrc commands. Here's a static version > without the custom inputs: > > http://tonysyu.github.io/raw_content/matplotlib-style-gallery/gallery.html > > Ideally, I'd get this into a form that could be submitted as a PR for the > matplotlib website, but I'll need a bit more spare time to learn some more > web development (sessions, client storage, etc). > > Cheers! > -Tony > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming! The Go Parallel Website, > sponsored by Intel and developed in partnership with Slashdot Media, is > your > hub for all things parallel software development, from weekly thought > leadership blogs to news, videos, case studies, tutorials and more. Take a > look and join the conversation now. http://goparallel.sourceforge.net > _______________________________________________ > Matplotlib-devel mailing list > Mat...@li... > https://lists.sourceforge.net/lists/listinfo/matplotlib-devel > > |