Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
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
(151) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
1
(10) |
2
(10) |
3
(9) |
4
(3) |
5
(2) |
6
(6) |
7
(12) |
8
(21) |
9
(4) |
10
(19) |
11
(7) |
12
(2) |
13
(28) |
14
(13) |
15
(27) |
16
(17) |
17
(21) |
18
(22) |
19
(3) |
20
(25) |
21
(17) |
22
(16) |
23
(28) |
24
(19) |
25
(4) |
26
(4) |
27
(23) |
28
(13) |
29
(15) |
30
(19) |
|
|
From: John Hutchinson <jmhutchi@gm...> - 2010-09-17 21:57:13
|
Hi: I am trying to make a 1row by 3 column plot with subplot, and I want the first plot (subplot(131)) to have equal aspect ratio, but the rest can auto scale. My code results in an empty plot for the 1st column subplot whenever I try to use the set_aspect('equal') Any ideas? Thanks John figure(1) hold(True) subplot(131) plot(RX,RY) title('Geometry') xlabel('um') ylabel('um') scatter(AX,AY,c='green',marker='s') plot([AX,0],[AY,0],linewidth=3,c='green') scatter(BX,BY,c='purple',marker='s') plot([0,BX],[0,BY],linewidth=3,c='purple') scatter(DX,DY,c='red',marker='o') axes().set_aspect('equal') hold(False) subplot(132) scatter(e1.real,gi,marker='s') title('E1 by tooth') subplot(133) scatter(e2.real,gi,marker='+') title('E2 by tooth') show() |
From: Jeremy Lewi <jlewi@in...> - 2010-09-17 21:56:22
|
HI, Is there a way to get the size of the bounding box for the axes which includes the axes labels and tick marks? It looks like Axes.get_position/set_position refers to the inner position (i.e the actual plot area). In matlab (http://www.mathworks.com/help/techdoc/ref/axes_props.html) this was the outer and inner position of an axes. I would like to get the outer position (i.e the yellow box in http://www.mathworks.com/help/techdoc/ref/axes_props.html) Thanks Jeremy Jeremy Lewi Engineering Scientist The Intellisis Corporation jlewi@... |
From: Paul Hobson <pmhobson@gm...> - 2010-09-17 21:50:38
|
Same here. -paul h. On Fri, Sep 17, 2010 at 2:21 PM, Jeffrey Blackburne <jblackburne@...> wrote: > I get a solid line for plt.step like you do. > > MPL 1.0.0, SVN revision 8657. > > -Jeff > > > On Sep 17, 2010, at 4:34 PM, Gökhan Sever wrote: > >> Hello, >> >> Can someone confirm me if this creates a dashed line for a simple step plot? >> >> # this is fine >> plt.plot(range(10), "g--") >> >> # plots solid line! >> plt.step(range(10), "g--") >> >> Thanks, >> >> -- >> Gökhan >> ------------------------------------------------------------------------------ >> Start uncovering the many advantages of virtual appliances >> and start using them to simplify application deployment and >> accelerate your shift to cloud computing. >> http://p.sf.net/sfu/novell-sfdev2dev_______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@... >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > |
From: Jeffrey Blackburne <jblackburne@gm...> - 2010-09-17 21:21:43
|
I get a solid line for plt.step like you do. MPL 1.0.0, SVN revision 8657. -Jeff On Sep 17, 2010, at 4:34 PM, Gökhan Sever wrote: > Hello, > > Can someone confirm me if this creates a dashed line for a simple step plot? > > # this is fine > plt.plot(range(10), "g--") > > # plots solid line! > plt.step(range(10), "g--") > > Thanks, > > -- > Gökhan > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev_______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@... > https://lists.sourceforge.net/lists/listinfo/matplotlib-users |
From: Gökhan Sever <gokhansever@gm...> - 2010-09-17 20:34:14
|
Hello, Can someone confirm me if this creates a dashed line for a simple step plot? # this is fine plt.plot(range(10), "g--") # plots solid line! plt.step(range(10), "g--") Thanks, -- Gökhan |
From: butterw <butterw@gm...> - 2010-09-17 18:17:05
|
teq-2 wrote: > > > Has anyone ever added a print button to the pyplot toolbar? And in general > how is it possible to modify that toolbar instead of creating a new one? > > -Tim > > The actual toolbar is defined in the backend. It is not difficult to modify it. For the Qt4agg backend on windows look for NavigationToolbar2QT in: c:\Python26\Lib\site-packages\matplotlib\backends\backend_qt4.py -- View this message in context: http://old.nabble.com/pyplot-toolbar-tp29741179p29741292.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: musik <xi.xiaoxiang@gm...> - 2010-09-17 18:14:06
|
Is there a way to set the legend font color? I am plotting multiple sets of data using different colors. I basically want to set each legend font color the same as the corresponding data line color. Here is an example. x = arange(0,10,0.1) y1 = sin(x) y2 = cos(x) plot(x,y1,'r-',x,y2,'b--') I want the legend font for y1 to be in red and the legend font for y2 to be in blue. Can anybody help? Thanks. -- View this message in context: http://old.nabble.com/legend-font-color-tp29741260p29741260.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: <teq@ss...> - 2010-09-17 18:05:06
|
Has anyone ever added a print button to the pyplot toolbar? And in general how is it possible to modify that toolbar instead of creating a new one? -Tim |
From: Martinho MA <mma@ua...> - 2010-09-17 15:43:25
|
mm.to_rgba(var.flat) doesn't work as plot_surface facecolors, but mm.to_rgba(var) does! Thanks for the hint mma Benjamin Root wrote: > On Fri, Sep 17, 2010 at 8:59 AM, Martinho MA <mma@... > <mailto:mma@...>> wrote: > > Hello > > I am trying to calculate the facecolors for the Axes3D.plot_surface > function, to have something similar to matlab surf 4th argument!! > Something like plot_surface(x,y,z,facecolors=calc_colors(v)) > > So, I need to obtain the colors corresponding to the values of v! I > created the function calc_colors: > > > import pylab > import numpy as np > from matplotlib.colors import rgb2hex > > def calc_colors(var): > colors = np.empty(var.shape, dtype='S7') > mm=pylab.cm.ScalarMappable() > mm.set_clim((var.min(),var.max())) > mm.set_cmap(pylab.cm.jet) > colors.flat= [rgb2hex(mm.to_rgba(k)[:-1]) for k in var.flat] > return colors > > > Well I believe this is not the smartest way to calculate the colors !! > At least it is quite slow ! > Can someone give me a better solution for this problem? > > than you > mma > > > I might be wrong, but can't mm.to_rgba() take var.flat as an input, > thereby giving you an array of colors as output? Also, I don't think > it is necessary to call rgb2hex() because matplotlib will just convert > that hex back into rgba. I believe you should be able to just return > the result of mm.to_rgba(var.flat). > > I hope that helps, > Ben Root > |
From: Simon S. Clift <ssclift@gm...> - 2010-09-17 15:27:05
|
Hi folks, I have a data set that is in the form of an irregular 2D grid with associated values, one for each node. I would like to plot this as a raised surface, with colours that indicate the z-value. Somehow I didn't find just quite the example I was looking for. After digging around in the matplotlib and mpl_toolkits.mplot3d I was able to solve the problem. To save the next person the trouble, here is my annotated example. Comments and improvements are most welcome. I'd be happy to have a version of this included as an official example, if it passes muster. Please note that randomly tesselating like this does generate dodgy surfaces occasionally, but that's the nature of any Delaunay triangulation in a case like this one. Best regards -- Simon #!/usr/bin/python # # Demonstration of how to plot a triangulated surface. # # We randomly tesselate the (x,y) plane and compute two quadratic functions # over those points. The plot displays the two surfaces, each coloured by the # average z-location of the triangle. # import random as rn import numpy as np # Matplot lib and its associated toolkits import matplotlib.delaunay as dl import mpl_toolkits.mplot3d.art3d as ar3 import mpl_toolkits.mplot3d.axes3d as ax3 import matplotlib.pyplot as plt # Generate 200 random points between -2.0 and 2.0. x = np.empty( [ 204 ] ) y = np.empty( [ 204 ] ) x[0:200] = np.random.uniform( -2.0, 2.0, [200] ) y[0:200] = np.random.uniform( -2.0, 2.0, [200] ) # Put corners on the range for interest x[200:204] = [ -2.0,-2.0, 2.0, 2.0 ] y[200:204] = [ -2.0,-2.0, 2.0, 2.0 ] # Create a triangulation of our region. We will re-use this for both curves. circumcenters, edges, tri_points, tri_neighbors = dl.delaunay(x, y) # Compute the first function of (x,y) z = 2.0 - 1.0 * ( x[:]**2 + y[:]**2 ) - 0.5*y[:] # Construct the triangles for the surface. verts = ( [ 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_points ] ) # To get a coloured plot, we need to assign a value to each face that dictates # the colour. In this case we'll just use the average z co-ordinate of the # three triangle vertices. One of these values is required for each face # (triangle). z_color = np.array( [ ( np.sum( v_p[:,2] ) / 3.0 ) for v_p in verts ] ) # Choiced for colour maps are : # autumn bone cool copper flag gray hot hsv jet pink prism spring summer # winter spectral cmhot = plt.cm.get_cmap("hot") # Our triangles are now turned into a collection of polygons using the vertex # array. We assign the colour map here, which will figure out its required # ranges all by itself. triCol = ar3.Poly3DCollection( verts, cmap=cmhot ) # Set the value array associated with the polygons. triCol.set_array ( z_color ) # Let's repeat the process for a second function. z2 = 2.0 + 1.0 * ( x[:]**2 + y[:]**2 ) - 0.5*y[:] # Construct the vertices, this time re-using the triangulation but using a new # z co-ordinate. verts2 = ( [ np.array( [ [ x[ t[0] ] , y[ t[0] ] , z2[ t[0] ] ] , [ x[ t[1] ] , y[ t[1] ] , z2[ t[1] ] ] , [ x[ t[2] ] , y[ t[2] ] , z2[ t[2] ] ] ] ) for t in tri_points ] ) # We require a new array of values that will tell our colour map what to do. z2_color = np.array( [ ( np.sum( v_p[:,2] ) / 3.0 ) for v_p in verts ] ) # Let's choose a different colour map this time. cmjet = plt.cm.get_cmap("jet") # We need a new set of 3D polygons, since this is a new surface. triCol2 = ar3.Poly3DCollection( verts2, cmap=cmjet ) # Let's set the edge colour to black and make the triangle edges into thicker, # dashed lines. Then we assign the array of values that will be used to colour # the surface. triCol2.set_edgecolor('k') triCol2.set_linewidth( 2.0 ) triCol2.set_linestyle( 'dashed' ) triCol2.set_array( z2_color ) # Create the plotting figure and the 3D axes. fig = plt.figure() ax = ax3.Axes3D(fig) # Add our two collections of 3D polygons directly. The collections have all of # the point and color information. We don't need the add_collection3d method, # since that method actually converts 2D polygons to 3D polygons. We already # have 3D polygons. ax.add_collection( triCol ) ax.add_collection( triCol2 ) # Add a label, for interest ax.text3D( 0.0, 0.0, 2.1, "Peak/Trough" ) # If we don't bound the axes correctly the display will be off. ax.set_xlim3d(-2, 2) ax.set_ylim3d(-2, 2) ax.set_zlim3d( np.min(z), np.max(z2) ) # We could also print to a file here. plt.show() -- 1129 Ibbetson Lane Mississauga, Ontario#!/usr/bin/python L5C 1K9 Canada |
From: Benjamin Root <ben.root@ou...> - 2010-09-17 15:23:14
|
On Fri, Sep 17, 2010 at 8:59 AM, Martinho MA <mma@...> wrote: > Hello > > I am trying to calculate the facecolors for the Axes3D.plot_surface > function, to have something similar to matlab surf 4th argument!! > Something like plot_surface(x,y,z,facecolors=calc_colors(v)) > > So, I need to obtain the colors corresponding to the values of v! I > created the function calc_colors: > > > import pylab > import numpy as np > from matplotlib.colors import rgb2hex > > def calc_colors(var): > colors = np.empty(var.shape, dtype='S7') > mm=pylab.cm.ScalarMappable() > mm.set_clim((var.min(),var.max())) > mm.set_cmap(pylab.cm.jet) > colors.flat= [rgb2hex(mm.to_rgba(k)[:-1]) for k in var.flat] > return colors > > > Well I believe this is not the smartest way to calculate the colors !! > At least it is quite slow ! > Can someone give me a better solution for this problem? > > than you > mma > > I might be wrong, but can't mm.to_rgba() take var.flat as an input, thereby giving you an array of colors as output? Also, I don't think it is necessary to call rgb2hex() because matplotlib will just convert that hex back into rgba. I believe you should be able to just return the result of mm.to_rgba(var.flat). I hope that helps, Ben Root |
From: Erik Janssens <Erik.Janssens@co...> - 2010-09-17 14:57:28
|
Hello Tony, thanks a lot for the code, I'll try it out ! Regards, Erik On Fri, 2010-09-17 at 09:46 -0400, Tony S Yu wrote: > On Sep 17, 2010, at 8:58 AM, Erik Janssens wrote: > > > Hi, > > > > I'm using matplotlib in a pyqt context, as described > > in the book 'Matplotlib for python developers'. > > > > When the window is large enough, everything works > > fine, but when the window is too small part of > > the x-axis labels get chopped. > > > > Is there a way to prevent this ? Preferable > > in combination with the user being able to > > resize the window. > > > > Thanks a lot, > > > > Erik > > > Hi Erik, > > Last I checked there was nothing automatic for adjusting the spacing around subplots. You can do so manually using ``plt.subplots_adjust`` (see for example, http://matplotlib.sourceforge.net/examples/pylab_examples/subplots_adjust.html). > > A while back, I wrote some functions to calculate a good set of parameters for subplots_adjust (see attached; examples in if-main block at bottom). I've been using these functions pretty regularly, and it works pretty well for my purposes. > > Best, > -Tony > > Some usage notes: > > The function has to draw the figure a couple of times to calculate correct spacing. When redrawing the figure (e.g. when you resize the window), you'd have to re-call the function, which would redraw the figure a couple of times before drawing the final figure. That's all to say: this is a fairly slow function. If you don't have subplots (like in your example), you can call "layout.tight_borders()" (instead of "layout.tight()"), which only requires a single redraw. > > When I originally posted this to the developers list, the functions didn't work with the GtkAgg backend. As far as I know, this hasn't changed. It should work fine for Qt4Agg, macosx, and TkAgg backends. > > |
From: Martinho MA <mma@ua...> - 2010-09-17 13:59:40
|
Hello I am trying to calculate the facecolors for the Axes3D.plot_surface function, to have something similar to matlab surf 4th argument!! Something like plot_surface(x,y,z,facecolors=calc_colors(v)) So, I need to obtain the colors corresponding to the values of v! I created the function calc_colors: import pylab import numpy as np from matplotlib.colors import rgb2hex def calc_colors(var): colors = np.empty(var.shape, dtype='S7') mm=pylab.cm.ScalarMappable() mm.set_clim((var.min(),var.max())) mm.set_cmap(pylab.cm.jet) colors.flat= [rgb2hex(mm.to_rgba(k)[:-1]) for k in var.flat] return colors Well I believe this is not the smartest way to calculate the colors !! At least it is quite slow ! Can someone give me a better solution for this problem? than you mma |
From: Tony S Yu <tsyu80@gm...> - 2010-09-17 13:46:20
|
On Sep 17, 2010, at 8:58 AM, Erik Janssens wrote: > Hi, > > I'm using matplotlib in a pyqt context, as described > in the book 'Matplotlib for python developers'. > > When the window is large enough, everything works > fine, but when the window is too small part of > the x-axis labels get chopped. > > Is there a way to prevent this ? Preferable > in combination with the user being able to > resize the window. > > Thanks a lot, > > Erik Hi Erik, Last I checked there was nothing automatic for adjusting the spacing around subplots. You can do so manually using ``plt.subplots_adjust`` (see for example, http://matplotlib.sourceforge.net/examples/pylab_examples/subplots_adjust.html). A while back, I wrote some functions to calculate a good set of parameters for subplots_adjust (see attached; examples in if-main block at bottom). I've been using these functions pretty regularly, and it works pretty well for my purposes. Best, -Tony Some usage notes: The function has to draw the figure a couple of times to calculate correct spacing. When redrawing the figure (e.g. when you resize the window), you'd have to re-call the function, which would redraw the figure a couple of times before drawing the final figure. That's all to say: this is a fairly slow function. If you don't have subplots (like in your example), you can call "layout.tight_borders()" (instead of "layout.tight()"), which only requires a single redraw. When I originally posted this to the developers list, the functions didn't work with the GtkAgg backend. As far as I know, this hasn't changed. It should work fine for Qt4Agg, macosx, and TkAgg backends. |
From: Erik Janssens <Erik.Janssens@co...> - 2010-09-17 12:58:57
|
Hi, I'm using matplotlib in a pyqt context, as described in the book 'Matplotlib for python developers'. When the window is large enough, everything works fine, but when the window is too small part of the x-axis labels get chopped. Is there a way to prevent this ? Preferable in combination with the user being able to resize the window. Thanks a lot, Erik http://www.python-camelot.com |
From: Alan G Isaac <alan.isaac@gm...> - 2010-09-17 12:23:33
|
http://matplotlib.sourceforge.net/examples/pylab_examples/accented_text.html hth, Alan Isaac |
From: Carlos Grohmann <carlos.grohmann@gm...> - 2010-09-17 11:00:37
|
Hi there, I've been looking for a way to automatically set the extension of a file when saving a plot via the navigationBar 'save' button. In my case, when I change the file type, the extension of the default filename ('image.png') won't change. I'd like it to change to the extension of the file type I selected. best carlos -- Prof. Carlos Henrique Grohmann - Geologist D.Sc. Institute of Geosciences - Univ. of São Paulo, Brazil http://www.igc.usp.br/pessoais/guano http://lattes.cnpq.br/5846052449613692 Linux User #89721 ________________ Can’t stop the signal. |
From: Kenshi hibino <hibino@ku...> - 2010-09-17 10:34:27
|
Jae-Joon Lee wrote: > > > Another option is to use mpl_toolkits.axisartist (distributed with mpl > 1.0). However, learning curve of the axisartist is also steep. You may > play around with the last figure in the example below. > > http://matplotlib.sourceforge.net/examples/axes_grid/demo_floating_axes.html > > Jae-Joon, Thanks for the quick reply and good advice. Second option you recommended is seemed to work well. My code modified from example is attached. But, in semi-circle domain I can't write contour label using clabel(). Do you know the reason why? http://old.nabble.com/file/p29737063/test2.py test2.py For reference my system is python(x,y) on Windows and mpl version is 1.0 Thanks again. Kenshi -- View this message in context: http://old.nabble.com/contour-plot-in-semi-circle-domain-tp29699332p29737063.html Sent from the matplotlib - users mailing list archive at Nabble.com. |
From: Scott Sinclair <scott.sinclair.za@gm...> - 2010-09-17 06:44:46
|
On 16 September 2010 22:52, Jeremy Conlin <jlconlin@...> wrote: > I have a colorbar which has some ticks, but I would like to add my own > ticks without replacing any of the existing ones. In addition, I > would like to give the ticks a different labels like "min" and "max". > Can someone show how this might be done? http://matplotlib.sourceforge.net/examples/pylab_examples/colorbar_tick_labelling_demo.html should give you some ideas to get started. Cheers, Scott |
From: Scott Sinclair <scott.sinclair.za@gm...> - 2010-09-17 06:35:02
|
On 16 September 2010 20:38, Mario Juric <mjuric@...> wrote: > I'm looking at Basemap as a backend for plotting maps of the sky in > different projections, and so far it seems like a really good match! > Excellent work! > > The only problem that I don't know how to solve is that in astronomy > the longitude on maps typically increases from right to left (we're > looking at the celestial sphere from the "inside"). Is there any way (or > a trick) to make Basemap do this? Not my field, but I recently bumped into this http://www.astro.rug.nl/software/kapteyn-beta/index.html Maybe it's useful to you? Cheers, Scott |
From: Benjamin Root <ben.root@ou...> - 2010-09-17 00:39:47
|
On Thu, Sep 16, 2010 at 5:33 PM, Carlos Grohmann <carlos.grohmann@...>wrote: > Hello all, > > Is it OK to remove the fonts I don't use? (I use only sans-serif) By > Ok I mean not only from the practical poin tof view (that is, will the > app run?) but also from the _legal_ point of view (am I obliged to > distribute all those fonts?) > > Carlos, Just to make it very clear, matplotlib is open sourced. You are free to modify the package to your heart's content, however you see fit. Matplotlib only asks that you keep the copyright notice with the distributed software (in particular, the matplotlib/license/LICENSE file applies here, as well as others.) With regards to fonts, refer to the matplotlib/license/LICENSE_STIX file. My understanding of that license (though, IANAL), is that you don't have to worry about anything above and beyond just simply including the license file unless you are eliminating individual glyphs from a font (or adding glyphs). However, I don't see any reason why you can't constrain yourself to a particular font. Note that you are not allowed to sell any particular font in the package, though you are allowed to charge a distribution fee for the "font software". Generally speaking, my rule of thumb is that if you are distributing open-source software in the same spirit you have received it, you are satisfying the spirit of the licenses. The only thing remaining is whether the source code has to accompany the software or not. The core part of matplotlib is BSD licensed (or similar) and does not require that (although it is encouraged!). Important! Note that the basemap package is GPL-licensed, and is required to have its source code accompany its software. However, unless your program *depends* on basemap for it to function, the source code to your program is not required to be GPL-ed. And, as always, I am not a lawyer. I am merely conveying my understanding and experience with software licensing. Anyone else is free to add to and/or correct what I have said here. I hope this helps! Ben Root |