You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(115) |
Aug
(120) |
Sep
(137) |
Oct
(170) |
Nov
(461) |
Dec
(263) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(120) |
Feb
(74) |
Mar
(35) |
Apr
(74) |
May
(245) |
Jun
(356) |
Jul
(240) |
Aug
(115) |
Sep
(78) |
Oct
(225) |
Nov
(98) |
Dec
(271) |
2009 |
Jan
(132) |
Feb
(84) |
Mar
(74) |
Apr
(56) |
May
(90) |
Jun
(79) |
Jul
(83) |
Aug
(296) |
Sep
(214) |
Oct
(76) |
Nov
(82) |
Dec
(66) |
2010 |
Jan
(46) |
Feb
(58) |
Mar
(51) |
Apr
(77) |
May
(58) |
Jun
(126) |
Jul
(128) |
Aug
(64) |
Sep
(50) |
Oct
(44) |
Nov
(48) |
Dec
(54) |
2011 |
Jan
(68) |
Feb
(52) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2018 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
1
(3) |
2
(2) |
3
(5) |
4
(1) |
5
|
6
|
7
(6) |
8
(3) |
9
(7) |
10
(6) |
11
(14) |
12
(6) |
13
(10) |
14
(6) |
15
|
16
|
17
(15) |
18
(6) |
19
(1) |
20
(4) |
21
(8) |
22
(9) |
23
(12) |
24
(35) |
25
(21) |
26
(14) |
27
(11) |
28
(9) |
29
(11) |
30
(6) |
31
(9) |
|
|
Revision: 5941 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5941&view=rev Author: jdh2358 Date: 2008年07月31日 19:08:08 +0000 (2008年7月31日) Log Message: ----------- bumbed release number Modified Paths: -------------- trunk/matplotlib/doc/pyplots/tex_demo.pdf trunk/matplotlib/lib/matplotlib/__init__.py Modified: trunk/matplotlib/doc/pyplots/tex_demo.pdf =================================================================== --- trunk/matplotlib/doc/pyplots/tex_demo.pdf 2008年07月31日 19:05:30 UTC (rev 5940) +++ trunk/matplotlib/doc/pyplots/tex_demo.pdf 2008年07月31日 19:08:08 UTC (rev 5941) @@ -4,9 +4,9 @@ << /Type /Catalog /Pages 3 0 R >> endobj 2 0 obj -<< /CreationDate (D:20080613153922-04'00') +<< /CreationDate (D:20080731010125-07'00') /Producer (matplotlib pdf backend) -/Creator (matplotlib 0.98.0, http://matplotlib.sf.net) >> +/Creator (matplotlib 0.98.3rc2, http://matplotlib.sf.net) >> endobj 3 0 obj << /Count 1 /Kids [ 4 0 R ] /Type /Pages >> @@ -22,28 +22,26 @@ 5 0 obj << /Filter /FlateDecode /Length 11 0 R >> stream -x\x9C\xCDYM\x8F]5\x9D\xB5\xFF\xC1\xEC\xCC.Yĩ\xBB\Fb\x83"Eb$\xA0H\xC0\x82\x8F2J\x830\xFC\xFD9\xF6}/\xFD\x9E}\xE9<u\xA4\xCE,\x92n\xFB\x96\xCB\xF6\xA9\xE3Se\xB7ħ\x91\xE3s\xFC{(R\xBC\x8EY?_\x8E\x9F\xE2\x8E\xDF\xE8\xF5O\xF4\x87a\xF7$dM\xFDsr\x8CP\xEF?G\xE3屡\x94\xF2p\xD2\xCD\xCE\xC3^~;ik.ɢ\xE3\xFFW\xCF\xE2\x97\xF1\x971\xC7ώ3 -X\x9C%+\xB0\x94\x96\x8C -{\x93ׅ3̤&Qe\xCB\xDCWS4\xF3 \xA2I\x85\xB3\xB5Z밯\x89$Gᚚre\xD5\xEC}\x89\x86i\xB0z\xE6\xC4\xD9+\xA9\xF6^\x85\x95!M\xE4DZ-g\xEE\xFD5i\x93\xC8M\x93\xCC\xEBlV\xD1_)9ܰk2f\xCD\xD4T[\xEF\xCFI)\xAE\x92 -{)R\xBC\xF5U֚\xAAE\xC6\xE4\xF5dV\xE7$\x8C\xEE\xECX\x93\x93Za\x92ޟ\x93U \xAC%5i\xE2Yͭ\xF7{b\xC1\xACثT\xAA\L\xB9\xEF\xA9q*\xD83\xDC37\xC3VǬ\xAD,ドル\xA6\xC1;\xBB\xB5\xB1\xF4\xDEl8;\xE7\\xF36'#4\xADH\xAC\xBE\xDCJ#3\xFD%e\xF2`%i\xAE\xE8sk\x87\xC3\xE4\x96c1ĥ5-\xA5#\x80 ![\xA2\x93I\x99K\xAA\xD5BƎ\xCD\xC5 -[\xB5\xD1\xDFN\x89ةW/J"#\xDA,\x82\xE5\x816X\x94a\x9DU\x8B\x8FU -\xA6\xCB9\x80\xA5eG<\xA8n\xF6\xAD\xD3k#(b\x8D\xC9ќ\x8D\xD49wzC\x87\xAF\x8B
Revision: 5940 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5940&view=rev Author: mdboom Date: 2008年07月31日 19:05:30 +0000 (2008年7月31日) Log Message: ----------- Fix image maps in inheritance diagrams. Modified Paths: -------------- trunk/matplotlib/doc/sphinxext/inheritance_diagram.py Modified: trunk/matplotlib/doc/sphinxext/inheritance_diagram.py =================================================================== --- trunk/matplotlib/doc/sphinxext/inheritance_diagram.py 2008年07月31日 18:39:37 UTC (rev 5939) +++ trunk/matplotlib/doc/sphinxext/inheritance_diagram.py 2008年07月31日 19:05:30 UTC (rev 5940) @@ -326,10 +326,10 @@ # Create a mapping from fully-qualified class names to URLs. urls = {} for child in node: - if 'refuri' in child: - urls[child['reftitle']] = child['refuri'] - elif 'refid' in child: - urls[child['reftitle']] = '#' + child['refid'] + if child.get('refuri') is not None: + urls[child['reftitle']] = child.get('refuri') + elif child.get('refid') is not None: + urls[child['reftitle']] = '#' + child.get('refid') # These arguments to dot will save a PNG file to disk and write # an HTML image map to stdout. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5939 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5939&view=rev Author: mdboom Date: 2008年07月31日 18:39:37 +0000 (2008年7月31日) Log Message: ----------- Remove warnings in _delaunay.cpp and consolidate duplicate cleanup code (so it doesn't have to be manually kept in sync). Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/delaunay/_delaunay.cpp Modified: trunk/matplotlib/lib/matplotlib/delaunay/_delaunay.cpp =================================================================== --- trunk/matplotlib/lib/matplotlib/delaunay/_delaunay.cpp 2008年07月31日 18:38:56 UTC (rev 5938) +++ trunk/matplotlib/lib/matplotlib/delaunay/_delaunay.cpp 2008年07月31日 18:39:37 UTC (rev 5939) @@ -12,8 +12,8 @@ extern "C" { -static void reorder_edges(int npoints, int ntriangles, - double *x, double *y, +static void reorder_edges(int npoints, int ntriangles, + double *x, double *y, int *edge_db, int *tri_edges, int *tri_nbrs) { int neighbors[3], nodes[3]; @@ -69,7 +69,7 @@ // Not trusting me? Okay, let's go through it: // We have three edges to deal with and three nodes. Without loss - // of generality, let's label the nodes A, B, and C with (A, B) + // of generality, let's label the nodes A, B, and C with (A, B) // forming the first edge in the order they arrive on input. // Then there are eight possibilities as to how the other edge-tuples // may be labeled, but only two variations that are going to affect the @@ -85,7 +85,7 @@ // The second test we need to perform is for counter-clockwiseness. // Again, there are only two variations that will affect the outcome: // either ABC is counter-clockwise, or it isn't. In the former case, - // we're done setting the node order, we just need to associate the + // we're done setting the node order, we just need to associate the // appropriate neighbor triangles with their opposite nodes, something // which can be done by inspection. In the latter case, to order the // nodes counter-clockwise, we only have to switch B and C to get @@ -113,8 +113,8 @@ static PyObject* getMesh(int npoints, double *x, double *y) { - PyObject *vertices, *edge_db, *tri_edges, *tri_nbrs; - PyObject *temp; + PyObject *vertices = NULL, *edge_db = NULL, *tri_edges = NULL, *tri_nbrs = NULL; + PyObject *temp = NULL; int tri0, tri1, reg0, reg1; double tri0x, tri0y, tri1x, tri1y; int length, numtri, i, j; @@ -136,21 +136,21 @@ dim[0] = length; dim[1] = 2; edge_db = PyArray_SimpleNew(2, dim, PyArray_INT); - if (!edge_db) goto fail; + if (!edge_db) goto exit; edge_db_ptr = (int*)PyArray_DATA(edge_db); - + dim[0] = numtri; vertices = PyArray_SimpleNew(2, dim, PyArray_DOUBLE); - if (!vertices) goto fail; + if (!vertices) goto exit; vertices_ptr = (double*)PyArray_DATA(vertices); dim[1] = 3; tri_edges = PyArray_SimpleNew(2, dim, PyArray_INT); - if (!tri_edges) goto fail; + if (!tri_edges) goto exit; tri_edges_ptr = (int*)PyArray_DATA(tri_edges); tri_nbrs = PyArray_SimpleNew(2, dim, PyArray_INT); - if (!tri_nbrs) goto fail; + if (!tri_nbrs) goto exit; tri_nbrs_ptr = (int*)PyArray_DATA(tri_nbrs); for (i=0; i<(3*numtri); i++) { @@ -192,25 +192,17 @@ // tri_edges contains lists of edges; convert to lists of nodes in // counterclockwise order and reorder tri_nbrs to match. Each node // corresponds to the edge opposite it in the triangle. - reorder_edges(npoints, numtri, x, y, edge_db_ptr, tri_edges_ptr, + reorder_edges(npoints, numtri, x, y, edge_db_ptr, tri_edges_ptr, tri_nbrs_ptr); temp = Py_BuildValue("(OOOO)", vertices, edge_db, tri_edges, tri_nbrs); - if (!temp) goto fail; - Py_DECREF(vertices); - Py_DECREF(edge_db); - Py_DECREF(tri_edges); - Py_DECREF(tri_nbrs); - - return temp; - -fail: + exit: Py_XDECREF(vertices); Py_XDECREF(edge_db); Py_XDECREF(tri_edges); Py_XDECREF(tri_nbrs); - return NULL; + return temp; } static PyObject *linear_planes(int ntriangles, double *x, double *y, double *z, @@ -221,7 +213,7 @@ int i; double *planes_ptr; double x02, y02, z02, x12, y12, z12, xy0212; - + dims[0] = ntriangles; dims[1] = 3; planes = PyArray_SimpleNew(2, dims, PyArray_DOUBLE); @@ -240,15 +232,15 @@ xy0212 = y02/y12; INDEX3(planes_ptr,i,0) = (z02 - z12 * xy0212) / (x02 - x12 * xy0212); INDEX3(planes_ptr,i,1) = (z12 - INDEX3(planes_ptr,i,0)*x12) / y12; - INDEX3(planes_ptr,i,2) = (z[INDEX3(nodes,i,2)] - - INDEX3(planes_ptr,i,0)*x[INDEX3(nodes,i,2)] - + INDEX3(planes_ptr,i,2) = (z[INDEX3(nodes,i,2)] - + INDEX3(planes_ptr,i,0)*x[INDEX3(nodes,i,2)] - INDEX3(planes_ptr,i,1)*y[INDEX3(nodes,i,2)]); } else { xy0212 = x02/x12; INDEX3(planes_ptr,i,1) = (z02 - z12 * xy0212) / (y02 - y12 * xy0212); INDEX3(planes_ptr,i,0) = (z12 - INDEX3(planes_ptr,i,1)*y12) / x12; - INDEX3(planes_ptr,i,2) = (z[INDEX3(nodes,i,2)] - - INDEX3(planes_ptr,i,0)*x[INDEX3(nodes,i,2)] - + INDEX3(planes_ptr,i,2) = (z[INDEX3(nodes,i,2)] - + INDEX3(planes_ptr,i,0)*x[INDEX3(nodes,i,2)] - INDEX3(planes_ptr,i,1)*y[INDEX3(nodes,i,2)]); } } @@ -256,24 +248,24 @@ return (PyObject*)planes; } -static double linear_interpolate_single(double targetx, double targety, +static double linear_interpolate_single(double targetx, double targety, double *x, double *y, int *nodes, int *neighbors, PyObject *planes, double defvalue, int start_triangle, int *end_triangle) { double *planes_ptr; planes_ptr = (double*)PyArray_DATA(planes); if (start_triangle == -1) start_triangle = 0; - *end_triangle = walking_triangles(start_triangle, targetx, targety, + *end_triangle = walking_triangles(start_triangle, targetx, targety, x, y, nodes, neighbors); if (*end_triangle == -1) return defvalue; - return (targetx*INDEX3(planes_ptr,*end_triangle,0) + + return (targetx*INDEX3(planes_ptr,*end_triangle,0) + targety*INDEX3(planes_ptr,*end_triangle,1) + INDEX3(planes_ptr,*end_triangle,2)); } -static PyObject *linear_interpolate_grid(double x0, double x1, int xsteps, +static PyObject *linear_interpolate_grid(double x0, double x1, int xsteps, double y0, double y1, int ysteps, - PyObject *planes, double defvalue, + PyObject *planes, double defvalue, int npoints, double *x, double *y, int *nodes, int *neighbors) { int ix, iy; @@ -312,10 +304,10 @@ static PyObject *compute_planes_method(PyObject *self, PyObject *args) { PyObject *pyx, *pyy, *pyz, *pynodes; - PyObject *x, *y, *z, *nodes; + PyObject *x = NULL, *y = NULL, *z = NULL, *nodes = NULL; int npoints, ntriangles; - PyObject *planes; + PyObject *planes = NULL; if (!PyArg_ParseTuple(args, "OOOO", &pyx, &pyy, &pyz, &pynodes)) { return NULL; @@ -323,58 +315,52 @@ x = PyArray_FROMANY(pyx, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!x) { PyErr_SetString(PyExc_ValueError, "x must be a 1-D array of floats"); - goto fail; + goto exit; } y = PyArray_FROMANY(pyy, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!y) { PyErr_SetString(PyExc_ValueError, "y must be a 1-D array of floats"); - goto fail; + goto exit; } z = PyArray_FROMANY(pyz, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!z) { PyErr_SetString(PyExc_ValueError, "z must be a 1-D array of floats"); - goto fail; + goto exit; } npoints = PyArray_DIM(x, 0); if ((PyArray_DIM(y, 0) != npoints) || (PyArray_DIM(z, 0) != npoints)) { PyErr_SetString(PyExc_ValueError, "x,y,z arrays must be of equal length"); - goto fail; + goto exit; } nodes = PyArray_FROMANY(pynodes, PyArray_INT, 2, 2, NPY_IN_ARRAY); if (!nodes) { PyErr_SetString(PyExc_ValueError, "nodes must be a 2-D array of ints"); - goto fail; + goto exit; } ntriangles = PyArray_DIM(nodes, 0); if (PyArray_DIM(nodes, 1) != 3) { PyErr_SetString(PyExc_ValueError, "nodes must have shape (ntriangles, 3)"); - goto fail; + goto exit; } - planes = linear_planes(ntriangles, (double*)PyArray_DATA(x), + planes = linear_planes(ntriangles, (double*)PyArray_DATA(x), (double*)PyArray_DATA(y), (double*)PyArray_DATA(z), (int*)PyArray_DATA(nodes)); - Py_DECREF(x); - Py_DECREF(y); - Py_DECREF(z); - Py_DECREF(nodes); - - return planes; - -fail: +exit: Py_XDECREF(x); Py_XDECREF(y); Py_XDECREF(z); Py_XDECREF(nodes); - return NULL; + + return planes; } static PyObject *linear_interpolate_method(PyObject *self, PyObject *args) { double x0, x1, y0, y1, defvalue; int xsteps, ysteps; - PyObject *pyplanes, *pyx, *pyy, *pynodes, *pyneighbors, *grid; - PyObject *planes, *x, *y, *nodes, *neighbors; + PyObject *pyplanes, *pyx, *pyy, *pynodes, *pyneighbors, *grid = NULL; + PyObject *planes = NULL, *x = NULL, *y = NULL, *nodes = NULL, *neighbors = NULL; int npoints; @@ -385,54 +371,47 @@ x = PyArray_FROMANY(pyx, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!x) { PyErr_SetString(PyExc_ValueError, "x must be a 1-D array of floats"); - goto fail; + goto exit; } y = PyArray_FROMANY(pyy, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!y) { PyErr_SetString(PyExc_ValueError, "y must be a 1-D array of floats"); - goto fail; + goto exit; } npoints = PyArray_DIM(x, 0); if (PyArray_DIM(y, 0) != npoints) { PyErr_SetString(PyExc_ValueError, "x,y arrays must be of equal length"); - goto fail; + goto exit; } planes = PyArray_FROMANY(pyplanes, PyArray_DOUBLE, 2, 2, NPY_IN_ARRAY); if (!planes) { PyErr_SetString(PyExc_ValueError, "planes must be a 2-D array of floats"); - goto fail; + goto exit; } nodes = PyArray_FROMANY(pynodes, PyArray_INT, 2, 2, NPY_IN_ARRAY); if (!nodes) { PyErr_SetString(PyExc_ValueError, "nodes must be a 2-D array of ints"); - goto fail; + goto exit; } neighbors = PyArray_FROMANY(pyneighbors, PyArray_INT, 2, 2, NPY_IN_ARRAY); if (!neighbors) { PyErr_SetString(PyExc_ValueError, "neighbors must be a 2-D array of ints"); - goto fail; + goto exit; } grid = linear_interpolate_grid(x0, x1, xsteps, y0, y1, ysteps, (PyObject*)planes, defvalue, npoints, (double*)PyArray_DATA(x), (double*)PyArray_DATA(y), (int*)PyArray_DATA(nodes), (int*)PyArray_DATA(neighbors)); - - Py_DECREF(x); - Py_DECREF(y); - Py_DECREF(planes); - Py_DECREF(nodes); - Py_DECREF(neighbors); - return grid; - -fail: + exit: Py_XDECREF(x); Py_XDECREF(y); Py_XDECREF(planes); Py_XDECREF(nodes); Py_XDECREF(neighbors); - return NULL; + + return grid; } // Thanks to C++'s memory rules, we can't use the usual "goto fail;" method of @@ -455,7 +434,7 @@ { PyObject *pyx, *pyy, *pyz, *pycenters, *pynodes, *pyneighbors, *pyintx, *pyinty; PyObject *x = NULL, *y = NULL, *z = NULL, *centers = NULL, *nodes = NULL, - *neighbors = NULL, *intx = NULL, *inty = NULL, *intz; + *neighbors = NULL, *intx = NULL, *inty = NULL, *intz = NULL; double defvalue; int size, npoints, ntriangles; @@ -506,7 +485,7 @@ return NULL; } ntriangles = PyArray_DIM(neighbors, 0); - if ((PyArray_DIM(nodes, 0) != ntriangles) || + if ((PyArray_DIM(nodes, 0) != ntriangles) || (PyArray_DIM(centers, 0) != ntriangles)) { PyErr_SetString(PyExc_ValueError, "centers,nodes,neighbors must be of equal length"); CLEANUP @@ -542,13 +521,13 @@ return NULL; } - NaturalNeighbors nn(npoints, ntriangles, + NaturalNeighbors nn(npoints, ntriangles, (double*)PyArray_DATA(x), (double*)PyArray_DATA(y), - (double*)PyArray_DATA(centers), (int*)PyArray_DATA(nodes), + (double*)PyArray_DATA(centers), (int*)PyArray_DATA(nodes), (int*)PyArray_DATA(neighbors)); size = PyArray_Size(intx); - nn.interpolate_unstructured((double*)PyArray_DATA(z), size, - (double*)PyArray_DATA(intx), (double*)PyArray_DATA(inty), + nn.interpolate_unstructured((double*)PyArray_DATA(z), size, + (double*)PyArray_DATA(intx), (double*)PyArray_DATA(inty), (double*)PyArray_DATA(intz), defvalue); Py_XDECREF(x); @@ -575,13 +554,13 @@ static PyObject *nn_interpolate_method(PyObject *self, PyObject *args) { PyObject *pyx, *pyy, *pyz, *pycenters, *pynodes, *pyneighbors, *grid; - PyObject *x, *y, *z, *centers, *nodes, *neighbors; + PyObject *x = NULL, *y = NULL, *z = NULL, *centers = NULL, *nodes = NULL, *neighbors = NULL; double x0, x1, y0, y1, defvalue; int xsteps, ysteps; int npoints, ntriangles; intp dims[2]; - if (!PyArg_ParseTuple(args, "ddiddidOOOOOO", &x0, &x1, &xsteps, + if (!PyArg_ParseTuple(args, "ddiddidOOOOOO", &x0, &x1, &xsteps, &y0, &y1, &ysteps, &defvalue, &pyx, &pyy, &pyz, &pycenters, &pynodes, &pyneighbors)) { return NULL; @@ -629,7 +608,7 @@ return NULL; } ntriangles = PyArray_DIM(neighbors, 0); - if ((PyArray_DIM(nodes, 0) != ntriangles) || + if ((PyArray_DIM(nodes, 0) != ntriangles) || (PyArray_DIM(centers, 0) != ntriangles)) { PyErr_SetString(PyExc_ValueError, "centers,nodes,neighbors must be of equal length"); CLEANUP @@ -644,11 +623,11 @@ return NULL; } - NaturalNeighbors nn(npoints, ntriangles, + NaturalNeighbors nn(npoints, ntriangles, (double*)PyArray_DATA(x), (double*)PyArray_DATA(y), - (double*)PyArray_DATA(centers), (int*)PyArray_DATA(nodes), + (double*)PyArray_DATA(centers), (int*)PyArray_DATA(nodes), (int*)PyArray_DATA(neighbors)); - nn.interpolate_grid((double*)PyArray_DATA(z), + nn.interpolate_grid((double*)PyArray_DATA(z), x0, x1, xsteps, y0, y1, ysteps, (double*)PyArray_DATA(grid), @@ -663,8 +642,8 @@ static PyObject *delaunay_method(PyObject *self, PyObject *args) { - PyObject *pyx, *pyy, *mesh; - PyObject *x, *y; + PyObject *pyx, *pyy, *mesh = NULL; + PyObject *x = NULL, *y = NULL; int npoints; if (!PyArg_ParseTuple(args, "OO", &pyx, &pyy)) { @@ -673,37 +652,31 @@ x = PyArray_FROMANY(pyx, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!x) { PyErr_SetString(PyExc_ValueError, "x must be a 1-D array of floats"); - goto fail; + goto exit; } y = PyArray_FROMANY(pyy, PyArray_DOUBLE, 1, 1, NPY_IN_ARRAY); if (!y) { PyErr_SetString(PyExc_ValueError, "y must be a 1-D array of floats"); - goto fail; + goto exit; } npoints = PyArray_DIM(x, 0); if (PyArray_DIM(y, 0) != npoints) { PyErr_SetString(PyExc_ValueError, "x and y must have the same length"); - goto fail; + goto exit; } mesh = getMesh(npoints, (double*)PyArray_DATA(x), (double*)PyArray_DATA(y)); - if (!mesh) goto fail; - - Py_DECREF(x); - Py_DECREF(y); - - return mesh; - -fail: + exit: Py_XDECREF(x); Py_XDECREF(y); - return NULL; + + return mesh; } static PyMethodDef delaunay_methods[] = { - {"delaunay", (PyCFunction)delaunay_method, METH_VARARGS, + {"delaunay", (PyCFunction)delaunay_method, METH_VARARGS, "Compute the Delaunay triangulation of a cloud of 2-D points.\n\n" "circumcenters, edges, tri_points, tri_neighbors = delaunay(x, y)\n\n" "x, y -- shape-(npoints,) arrays of floats giving the X and Y coordinates of the points\n" @@ -730,7 +703,7 @@ PyMODINIT_FUNC init_delaunay(void) { PyObject* m; - m = Py_InitModule3("_delaunay", delaunay_methods, + m = Py_InitModule3("_delaunay", delaunay_methods, "Tools for computing the Delaunay triangulation and some operations on it.\n" ); if (m == NULL) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5938 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5938&view=rev Author: jswhit Date: 2008年07月31日 18:38:56 +0000 (2008年7月31日) Log Message: ----------- use 'import numpy as np' Modified Paths: -------------- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/netcdftime.py trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/netcdftime.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/netcdftime.py 2008年07月31日 15:37:56 UTC (rev 5937) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/netcdftime.py 2008年07月31日 18:38:56 UTC (rev 5938) @@ -1,7 +1,8 @@ """ Performs conversions of netCDF time coordinate data to/from datetime objects. """ -import math, numpy, re, time +import math, re, time +import numpy as np from datetime import datetime as real_datetime _units = ['days','hours','minutes','seconds','day','hour','minute','second'] @@ -629,7 +630,7 @@ except: isscalar = True if not isscalar: - date = numpy.array(date) + date = np.array(date) shape = date.shape if self.calendar in ['julian','standard','gregorian','proleptic_gregorian']: if isscalar: @@ -656,7 +657,7 @@ else: jdelta = [_360DayFromDate(d)-self._jd0 for d in date.flat] if not isscalar: - jdelta = numpy.array(jdelta) + jdelta = np.array(jdelta) # convert to desired units, add time zone offset. if self.units in ['second','seconds']: jdelta = jdelta*86400. + self.tzoffset*60. @@ -669,7 +670,7 @@ if isscalar: return jdelta else: - return numpy.reshape(jdelta,shape) + return np.reshape(jdelta,shape) def num2date(self,time_value): """ @@ -681,8 +682,8 @@ Resolution is 1 second. -Works for scalars, sequences and numpy arrays. -Returns a scalar if input is a scalar, else returns a numpy array. +Works for scalars, sequences and np arrays. +Returns a scalar if input is a scalar, else returns a np array. The datetime instances returned by C{num2date} are 'real' python datetime objects if the date falls in the Gregorian calendar (i.e. @@ -699,7 +700,7 @@ except: isscalar = True if not isscalar: - time_value = numpy.array(time_value) + time_value = np.array(time_value) shape = time_value.shape # convert to desired units, remove time zone offset. if self.units in ['second','seconds']: @@ -734,7 +735,7 @@ if isscalar: return date else: - return numpy.reshape(numpy.array(date),shape) + return np.reshape(np.array(date),shape) def _parse_date(origin): """Parses a date string and returns a tuple Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2008年07月31日 15:37:56 UTC (rev 5937) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/proj.py 2008年07月31日 18:38:56 UTC (rev 5938) @@ -1,4 +1,4 @@ -import numpy as npy +import numpy as np import pyproj import math @@ -92,15 +92,15 @@ self._proj4 = pyproj.Proj(projparams) # find major and minor axes of ellipse defining map proj region. delta = 0.01 - lats = npy.arange(0,90,delta) + lats = np.arange(0,90,delta) lon_0 = projparams['lon_0'] - lons = lon_0*npy.ones(len(lats),'d') + lons = lon_0*np.ones(len(lats),'d') x, y = self._proj4(lons, lats) yi = (y > 1.e20).tolist() ny = yi.index(1)-1 height = y[ny] - lons = npy.arange(lon_0,lon_0+90,delta) - lats = npy.zeros(len(lons),'d') + lons = np.arange(lon_0,lon_0+90,delta) + lats = np.zeros(len(lons),'d') x, y = self(lons, lats) xi = (x > 1.e20).tolist() nx = xi.index(1)-1 @@ -264,8 +264,8 @@ """ dx = (self.urcrnrx-self.llcrnrx)/(nx-1) dy = (self.urcrnry-self.llcrnry)/(ny-1) - x = self.llcrnrx+dx*npy.indices((ny,nx),npy.float32)[1,:,:] - y = self.llcrnry+dy*npy.indices((ny,nx),npy.float32)[0,:,:] + x = self.llcrnrx+dx*np.indices((ny,nx),np.float32)[1,:,:] + y = self.llcrnry+dy*np.indices((ny,nx),np.float32)[0,:,:] lons, lats = self(x, y, inverse=True) if returnxy: return lons, lats, x, y @@ -280,9 +280,9 @@ """ dx = (self.urcrnrx-self.llcrnrx)/(nx-1) dy = (self.urcrnry-self.llcrnry)/(ny-1) - xy = npy.empty((ny,nx,2), npy.float64) - xy[...,0] = self.llcrnrx+dx*npy.indices((ny,nx),npy.float32)[1,:,:] - xy[...,1] = self.llcrnry+dy*npy.indices((ny,nx),npy.float32)[0,:,:] + xy = np.empty((ny,nx,2), np.float64) + xy[...,0] = self.llcrnrx+dx*np.indices((ny,nx),np.float32)[1,:,:] + xy[...,1] = self.llcrnry+dy*np.indices((ny,nx),np.float32)[0,:,:] lonlat = self(xy, inverse=True) if returnxy: return lonlat, xy @@ -329,9 +329,9 @@ t2 = time.clock() print 'compute lats/lons for all points on AWIPS 221 grid (%sx%s)' %(nx,ny) print 'max/min lons' - print min(npy.ravel(lons)),max(npy.ravel(lons)) + print min(np.ravel(lons)),max(np.ravel(lons)) print 'max/min lats' - print min(npy.ravel(lats)),max(npy.ravel(lats)) + print min(np.ravel(lats)),max(np.ravel(lats)) print 'took',t2-t1,'secs' print 'Same thing but with a single 3-D array' t1 = time.clock() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5937 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5937&view=rev Author: mdboom Date: 2008年07月31日 15:37:56 +0000 (2008年7月31日) Log Message: ----------- Fix memory leaks in ttconv (that manifest themselves in the PDF and PS backends). Modified Paths: -------------- trunk/matplotlib/src/_ttconv.cpp Modified: trunk/matplotlib/src/_ttconv.cpp =================================================================== --- trunk/matplotlib/src/_ttconv.cpp 2008年07月31日 14:44:07 UTC (rev 5936) +++ trunk/matplotlib/src/_ttconv.cpp 2008年07月31日 15:37:56 UTC (rev 5937) @@ -25,22 +25,23 @@ } ~PythonFileWriter() { - if (_write_method) - Py_DECREF(_write_method); + Py_XDECREF(_write_method); } void set(PyObject* write_method) { - if (_write_method) - Py_DECREF(_write_method); + Py_XDECREF(_write_method); _write_method = write_method; - if (_write_method) - Py_INCREF(_write_method); + Py_XINCREF(_write_method); } virtual void write(const char* a) { - if (_write_method) - if (! PyObject_CallFunction(_write_method, (char *)"s", a)) + PyObject* result = NULL; + if (_write_method) { + result = PyObject_CallFunction(_write_method, (char *)"s", a); + if (! result) throw PythonExceptionOccurred(); + Py_DECREF(result); + } } }; @@ -54,6 +55,7 @@ } file_writer->set(write_method); + Py_DECREF(write_method); return 1; } @@ -68,11 +70,14 @@ PyObject* item; while ( (item = PyIter_Next(iterator)) ) { long value = PyInt_AsLong(item); + Py_DECREF(item); if (value == -1 && PyErr_Occurred()) return 0; result->push_back(value); } + Py_DECREF(iterator); + return 1; } @@ -130,9 +135,13 @@ virtual void add_pair(const char* a, const char* b) { PyObject* value = PyString_FromString(b); - if (value) - if (PyDict_SetItemString(_dict, a, value)) + if (value) { + if (PyDict_SetItemString(_dict, a, value)) { + Py_DECREF(value); throw PythonExceptionOccurred(); + } + } + Py_DECREF(value); } }; @@ -145,7 +154,7 @@ static const char *kwlist[] = { "filename", "glyph_ids", NULL }; if (! PyArg_ParseTupleAndKeywords (args, kwds, - "s|O&:convert_ttf_to_ps", + "s|O&:get_pdf_charprocs", (char **)kwlist, &filename, pyiterable_to_vector_int, @@ -161,11 +170,14 @@ try { ::get_pdf_charprocs( filename, glyph_ids, dict ); } catch (TTException& e) { + Py_DECREF(result); PyErr_SetString(PyExc_RuntimeError, e.getMessage()); return NULL; } catch (PythonExceptionOccurred& ) { + Py_DECREF(result); return NULL; } catch (...) { + Py_DECREF(result); PyErr_SetString(PyExc_RuntimeError, "Unknown C++ exception"); return NULL; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5936 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5936&view=rev Author: mdboom Date: 2008年07月31日 14:44:07 +0000 (2008年7月31日) Log Message: ----------- Don't use fancy Unicode on a narrow Python build. Modified Paths: -------------- trunk/matplotlib/examples/pylab_examples/stix_fonts_demo.py Modified: trunk/matplotlib/examples/pylab_examples/stix_fonts_demo.py =================================================================== --- trunk/matplotlib/examples/pylab_examples/stix_fonts_demo.py 2008年07月31日 14:10:18 UTC (rev 5935) +++ trunk/matplotlib/examples/pylab_examples/stix_fonts_demo.py 2008年07月31日 14:44:07 UTC (rev 5936) @@ -13,10 +13,13 @@ r'$\mathrm{\mathbb{Blackboard \pi}}$', r'$\mathbf{\mathbb{Blackboard \pi}}$', r'$\mathfrak{Fraktur} \mathbf{\mathfrak{Fraktur}}$', - r'$\mathscr{Script}$', -# ur'Direct Unicode: $\u23ce \mathrm{\ue0f2 \U0001D538}$' - ] + r'$\mathscr{Script}$'] +if sys.maxunicode > 0xffff: + stests.append( + ur'Direct Unicode: $\u23ce \mathrm{\ue0f2 \U0001D538}$' + ) + from pylab import * def doall(): @@ -28,7 +31,7 @@ axis([0, 3, -len(tests), 0]) yticks(arange(len(tests)) * -1) for i, s in enumerate(tests): - print (i, s) + print (i, s.encode("ascii", "backslashreplace")) text(0.1, -i, s, fontsize=32) savefig('stix_fonts_example') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5935 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5935&view=rev Author: mdboom Date: 2008年07月31日 14:10:18 +0000 (2008年7月31日) Log Message: ----------- Warn when using Wx backend with wxPython < 2.8 Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月31日 13:50:58 UTC (rev 5934) +++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月31日 14:10:18 UTC (rev 5935) @@ -249,6 +249,8 @@ Initialise a wxWindows renderer instance. """ DEBUG_MSG("__init__()", 1, self) + if wx.VERSION_STRING < "2.8": + raise RuntimeError("matplotlib no longer supports wxPython < 2.8 for the Wx backend.\nYou may, however, use the WxAgg backend.") self.width = bitmap.GetWidth() self.height = bitmap.GetHeight() self.bitmap = bitmap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5934 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5934&view=rev Author: mdboom Date: 2008年07月31日 13:50:58 +0000 (2008年7月31日) Log Message: ----------- Deal with markers correctly for interpolating transformations. (Thanks Jae-Joon Lee for finding this.) Modified Paths: -------------- trunk/matplotlib/examples/api/custom_projection_example.py trunk/matplotlib/lib/matplotlib/lines.py trunk/matplotlib/lib/matplotlib/transforms.py Modified: trunk/matplotlib/examples/api/custom_projection_example.py =================================================================== --- trunk/matplotlib/examples/api/custom_projection_example.py 2008年07月31日 11:52:10 UTC (rev 5933) +++ trunk/matplotlib/examples/api/custom_projection_example.py 2008年07月31日 13:50:58 UTC (rev 5934) @@ -451,6 +451,7 @@ from pylab import * subplot(111, projection="hammer") +p = plot([-1, 1, 1], [-1, -1, 1], "o-") grid(True) show() Modified: trunk/matplotlib/lib/matplotlib/lines.py =================================================================== --- trunk/matplotlib/lib/matplotlib/lines.py 2008年07月31日 11:52:10 UTC (rev 5933) +++ trunk/matplotlib/lib/matplotlib/lines.py 2008年07月31日 13:50:58 UTC (rev 5934) @@ -432,7 +432,7 @@ gc.set_alpha(self._alpha) funcname = self._markers.get(self._marker, '_draw_nothing') if funcname != '_draw_nothing': - tpath, affine = self._transformed_path.get_transformed_path_and_affine() + tpath, affine = self._transformed_path.get_transformed_points_and_affine() markerFunc = getattr(self, funcname) markerFunc(renderer, gc, tpath, affine.frozen()) Modified: trunk/matplotlib/lib/matplotlib/transforms.py =================================================================== --- trunk/matplotlib/lib/matplotlib/transforms.py 2008年07月31日 11:52:10 UTC (rev 5933) +++ trunk/matplotlib/lib/matplotlib/transforms.py 2008年07月31日 13:50:58 UTC (rev 5934) @@ -2076,18 +2076,35 @@ self._transform = transform self.set_children(transform) self._transformed_path = None + self._transformed_points = None + def _revalidate(self): + if ((self._invalid & self.INVALID_NON_AFFINE == self.INVALID_NON_AFFINE) + or self._transformed_path is None): + self._transformed_path = \ + self._transform.transform_path_non_affine(self._path) + self._transformed_points = \ + Path(self._transform.transform_non_affine(self._path.vertices)) + self._invalid = 0 + + def get_transformed_points_and_affine(self): + """ + Return a copy of the child path, with the non-affine part of + the transform already applied, along with the affine part of + the path necessary to complete the transformation. Unlike + get_transformed_path_and_affine, no interpolation will be + performed. + """ + self._revalidate() + return self._transformed_points, self.get_affine() + def get_transformed_path_and_affine(self): """ Return a copy of the child path, with the non-affine part of the transform already applied, along with the affine part of the path necessary to complete the transformation. """ - if ((self._invalid & self.INVALID_NON_AFFINE == self.INVALID_NON_AFFINE) - or self._transformed_path is None): - self._transformed_path = \ - self._transform.transform_path_non_affine(self._path) - self._invalid = 0 + self._revalidate() return self._transformed_path, self.get_affine() def get_fully_transformed_path(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5933 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5933&view=rev Author: jswhit Date: 2008年07月31日 11:52:10 +0000 (2008年7月31日) Log Message: ----------- added masked array support to griddata Modified Paths: -------------- trunk/matplotlib/CHANGELOG trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/CHANGELOG =================================================================== --- trunk/matplotlib/CHANGELOG 2008年07月30日 17:30:19 UTC (rev 5932) +++ trunk/matplotlib/CHANGELOG 2008年07月31日 11:52:10 UTC (rev 5933) @@ -1,3 +1,5 @@ +2008年07月31日 Added masked array support to griddata. - JSW + 2008年07月26日 Added optional C and reduce_C_function arguments to axes.hexbin(). This allows hexbin to accumulate the values of C based on the x,y coordinates and display in hexagonal Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008年07月30日 17:30:19 UTC (rev 5932) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008年07月31日 11:52:10 UTC (rev 5933) @@ -2611,6 +2611,13 @@ raise TypeError("inputs xi and yi must have same number of dimensions (1 or 2)") if xi.ndim != 1 and xi.ndim != 2: raise TypeError("inputs xi and yi must be 1D or 2D.") + if not len(x)==len(y)==len(z): + raise TypeError("inputs x,y,z must all be 1D arrays of the same length") + # remove masked points. + if hasattr(z,'mask'): + x = x.compress(z.mask == False) + y = y.compress(z.mask == False) + z = z.compressed() if _use_natgrid: # use natgrid toolkit if available. if xi.ndim == 2: xi = xi[0,:] This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5932 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5932&view=rev Author: jdh2358 Date: 2008年07月30日 17:30:19 +0000 (2008年7月30日) Log Message: ----------- another try at wx Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月30日 16:32:50 UTC (rev 5931) +++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月30日 17:30:19 UTC (rev 5932) @@ -698,7 +698,7 @@ if not hasattr(self,'IsShownOnScreen'): - self.IsShownOnScreen = getattr(self, 'IsVisible', lambda self: True) + self.IsShownOnScreen = getattr(self, 'IsVisible', lambda *args: True) # Create the drawing bitmap This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5931 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5931&view=rev Author: jswhit Date: 2008年07月30日 16:32:50 +0000 (2008年7月30日) Log Message: ----------- updated download instructions. Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/mlab.py Modified: trunk/matplotlib/lib/matplotlib/mlab.py =================================================================== --- trunk/matplotlib/lib/matplotlib/mlab.py 2008年07月30日 16:19:40 UTC (rev 5930) +++ trunk/matplotlib/lib/matplotlib/mlab.py 2008年07月30日 16:32:50 UTC (rev 5931) @@ -2591,10 +2591,8 @@ this function will use the mpl_toolkits.natgrid algorithm, otherwise it will use the built-in matplotlib.delaunay package. - The natgrid matplotlib toolkit can be checked out through SVN with the - following command: - - svn co https://matplotlib.svn.sourceforge.net/svnroot/matplotlib/trunk/toolkits/natgrid natgrid + The natgrid matplotlib toolkit can be downloaded from + http://sourceforge.net/project/showfiles.php?group_id=80706&package_id=142792 """ try: from mpl_toolkits.natgrid import _natgrid, __version__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5930 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5930&view=rev Author: jswhit Date: 2008年07月30日 16:19:40 +0000 (2008年7月30日) Log Message: ----------- add MANIFEST.in, make __version__ a string. Modified Paths: -------------- trunk/toolkits/natgrid/lib/mpl_toolkits/natgrid/__init__.py Added Paths: ----------- trunk/toolkits/natgrid/MANIFEST.in Added: trunk/toolkits/natgrid/MANIFEST.in =================================================================== --- trunk/toolkits/natgrid/MANIFEST.in (rev 0) +++ trunk/toolkits/natgrid/MANIFEST.in 2008年07月30日 16:19:40 UTC (rev 5930) @@ -0,0 +1,5 @@ +include MANIFEST.in +include Copyright.txt +include setupegg.py +include test.py +include src/*.h Modified: trunk/toolkits/natgrid/lib/mpl_toolkits/natgrid/__init__.py =================================================================== --- trunk/toolkits/natgrid/lib/mpl_toolkits/natgrid/__init__.py 2008年07月30日 16:13:35 UTC (rev 5929) +++ trunk/toolkits/natgrid/lib/mpl_toolkits/natgrid/__init__.py 2008年07月30日 16:19:40 UTC (rev 5930) @@ -1,4 +1,4 @@ -__version__ = 0.1 +__version__ = '0.1' __doc__ = """ Python interface to NCAR natgrid library. If installed, used -by matplotlib griddata function.""" +by matplotlib griddata function. Not intended to be accessed directly by users.""" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5929 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5929&view=rev Author: jswhit Date: 2008年07月30日 16:13:35 +0000 (2008年7月30日) Log Message: ----------- add natgrid toolkit to docs, make basemap docs link to new online sphinx-generated version. Modified Paths: -------------- trunk/htdocs/hthelpers.py trunk/htdocs/toolkits.html.template Modified: trunk/htdocs/hthelpers.py =================================================================== --- trunk/htdocs/hthelpers.py 2008年07月30日 15:20:48 UTC (rev 5928) +++ trunk/htdocs/hthelpers.py 2008年07月30日 16:13:35 UTC (rev 5929) @@ -49,9 +49,10 @@ 'matplotlib.texmanager', 'matplotlib.text', 'matplotlib.ticker', - 'mpl_toolkits.basemap.basemap', + 'mpl_toolkits.basemap', 'mpl_toolkits.exceltools', 'mpl_toolkits.gtktools', + 'mpl_toolkits.natgrid', 'matplotlib.transforms', 'matplotlib.type1font', 'matplotlib.units', Modified: trunk/htdocs/toolkits.html.template =================================================================== --- trunk/htdocs/toolkits.html.template 2008年07月30日 15:20:48 UTC (rev 5928) +++ trunk/htdocs/toolkits.html.template 2008年07月30日 16:13:35 UTC (rev 5929) @@ -1,7 +1,8 @@ modfiles = ( - ('basemap.basemap', 'Plots data on map projections (with continental and political boundaries)'), - ('gtktools', 'some gtk utilities'), - ('exceltools', 'some Excel utilities'), + ('basemap', 'Plots data on map projections (with continental and political boundaries)','http://matplotlib.sf.net/basemap/doc/html/'), + ('gtktools', 'some gtk utilities', 'mpl_toolkits.gtktools.html'), + ('exceltools', 'some Excel utilities', 'mpl_toolkits.exceltools.html'), + ('natgrid', 'interface to natgrid C library for gridding irregularly spaced data', 'mpl_toolkits.natgrid.html'), ) @header@ @@ -16,10 +17,10 @@ <h4>The following toolkits are available for matplotlib </h4> </caption> <tr><th>toolkit</th><th>Description</th></tr> - + for toolkit,desc in modfiles: + + for toolkit,desc,url in modfiles: <tr> <th align=left> - <a href=mpl_toolkits.@toolkit@.html>mpl_toolkits.@toolkit@</a> + <a href=@url@>mpl_toolkits.@toolkit@</a> </th> <td> @desc@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5928 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5928&view=rev Author: jswhit Date: 2008年07月30日 15:20:48 +0000 (2008年7月30日) Log Message: ----------- include link to new API docs. Modified Paths: -------------- trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/README Modified: trunk/toolkits/basemap/Changelog =================================================================== --- trunk/toolkits/basemap/Changelog 2008年07月30日 12:41:04 UTC (rev 5927) +++ trunk/toolkits/basemap/Changelog 2008年07月30日 15:20:48 UTC (rev 5928) @@ -6,7 +6,9 @@ * fixed processing of coastlines for gnomonic projection. * don't try to use PyNIO in NetCDFFile (it was causing too many suprises). - * improved documentation using Sphinx/docutils. + * start of improved documentation using Sphinx/docutils. + Can be viewed at + http://matplotlib.sf.net/basemap/doc/html * change default behaviour of num2date and date2num to be the same as matplotlib counterparts. version 0.99 (svn revision 5344) Modified: trunk/toolkits/basemap/README =================================================================== --- trunk/toolkits/basemap/README 2008年07月30日 12:41:04 UTC (rev 5927) +++ trunk/toolkits/basemap/README 2008年07月30日 15:20:48 UTC (rev 5928) @@ -60,7 +60,7 @@ **Documentation** -see basemap.py docstrings. +see docstrings and http://matplotlib.sf.net/basemap/doc/html/. see scripts in 'examples' directory for example usage. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5927 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5927&view=rev Author: mmetz_bn Date: 2008年07月30日 12:41:04 +0000 (2008年7月30日) Log Message: ----------- use xrange instead of range in hexbin Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008年07月29日 21:42:37 UTC (rev 5926) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008年07月30日 12:41:04 UTC (rev 5927) @@ -5120,7 +5120,7 @@ lattice1.shape = (nx1,ny1) lattice2.shape = (nx2,ny2) - for i in range(len(x)): + for i in xrange(len(x)): if bdist[i]: lattice1[ix1[i], iy1[i]]+=1 else: @@ -5128,29 +5128,29 @@ else: # create accumulation arrays lattice1 = np.empty((nx1,ny1),dtype=object) - for i in range(nx1): - for j in range(ny1): + for i in xrange(nx1): + for j in xrange(ny1): lattice1[i,j] = [] lattice2 = np.empty((nx2,ny2),dtype=object) - for i in range(nx2): - for j in range(ny2): + for i in xrange(nx2): + for j in xrange(ny2): lattice2[i,j] = [] - for i in range(len(x)): + for i in xrange(len(x)): if bdist[i]: lattice1[ix1[i], iy1[i]].append( C[i] ) else: lattice2[ix2[i], iy2[i]].append( C[i] ) - for i in range(nx1): - for j in range(ny1): + for i in xrange(nx1): + for j in xrange(ny1): vals = lattice1[i,j] if len(vals): lattice1[i,j] = reduce_C_function( vals ) else: lattice1[i,j] = np.nan - for i in range(nx2): - for j in range(ny2): + for i in xrange(nx2): + for j in xrange(ny2): vals = lattice2[i,j] if len(vals): lattice2[i,j] = reduce_C_function( vals ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5926 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5926&view=rev Author: jdh2358 Date: 2008年07月29日 21:42:37 +0000 (2008年7月29日) Log Message: ----------- another attempt at portable isvisible for wx Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月29日 19:59:43 UTC (rev 5925) +++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月29日 21:42:37 UTC (rev 5926) @@ -698,8 +698,9 @@ if not hasattr(self,'IsShownOnScreen'): - self.IsShownOnScreen = self.IsVisible + self.IsShownOnScreen = getattr(self, 'IsVisible', lambda self: True) + # Create the drawing bitmap self.bitmap =wx.EmptyBitmap(w, h) DEBUG_MSG("__init__() - bitmap w:%d h:%d" % (w,h), 2, self) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5925 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5925&view=rev Author: jswhit Date: 2008年07月29日 19:59:43 +0000 (2008年7月29日) Log Message: ----------- gcc4.3 compatibility patch for geos-2.2.3 from David Huard. Modified Paths: -------------- trunk/toolkits/basemap/Changelog trunk/toolkits/basemap/README trunk/toolkits/basemap/geos-2.2.3/source/capi/geos_c.cpp trunk/toolkits/basemap/geos-2.2.3/source/index/quadtree/DoubleBits.cpp trunk/toolkits/basemap/geos-2.2.3/source/io/ByteOrderValues.cpp trunk/toolkits/basemap/geos-2.2.3/source/io/StringTokenizer.cpp Modified: trunk/toolkits/basemap/Changelog =================================================================== --- trunk/toolkits/basemap/Changelog 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/Changelog 2008年07月29日 19:59:43 UTC (rev 5925) @@ -1,4 +1,5 @@ version 0.99.1 (not yet released) + * geos-2.2.3 patched for compatibility with gcc 4.3. * added "barbs" method to draw wind barbs on the map. * added "tissot" method for generating Tissot's indicatrix (see example plot_tissot.py). Modified: trunk/toolkits/basemap/README =================================================================== --- trunk/toolkits/basemap/README 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/README 2008年07月29日 19:59:43 UTC (rev 5925) @@ -125,5 +125,7 @@ Erik Andersen Michael Hearne Jesper Larsen +Ryan May +David Huard for valuable contributions. Modified: trunk/toolkits/basemap/geos-2.2.3/source/capi/geos_c.cpp =================================================================== --- trunk/toolkits/basemap/geos-2.2.3/source/capi/geos_c.cpp 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/geos-2.2.3/source/capi/geos_c.cpp 2008年07月29日 19:59:43 UTC (rev 5925) @@ -18,6 +18,7 @@ #include <stdio.h> #include <string> +#include <cstring> #include <iostream> #include <sstream> #include <fstream> Modified: trunk/toolkits/basemap/geos-2.2.3/source/index/quadtree/DoubleBits.cpp =================================================================== --- trunk/toolkits/basemap/geos-2.2.3/source/index/quadtree/DoubleBits.cpp 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/geos-2.2.3/source/index/quadtree/DoubleBits.cpp 2008年07月29日 19:59:43 UTC (rev 5925) @@ -15,6 +15,7 @@ #include <geos/indexQuadtree.h> #include <geos/util.h> +#include <cstring> namespace geos { Modified: trunk/toolkits/basemap/geos-2.2.3/source/io/ByteOrderValues.cpp =================================================================== --- trunk/toolkits/basemap/geos-2.2.3/source/io/ByteOrderValues.cpp 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/geos-2.2.3/source/io/ByteOrderValues.cpp 2008年07月29日 19:59:43 UTC (rev 5925) @@ -16,6 +16,7 @@ #include <geos/io.h> #include <geos/util.h> +#include <cstring> namespace geos { Modified: trunk/toolkits/basemap/geos-2.2.3/source/io/StringTokenizer.cpp =================================================================== --- trunk/toolkits/basemap/geos-2.2.3/source/io/StringTokenizer.cpp 2008年07月29日 18:34:11 UTC (rev 5924) +++ trunk/toolkits/basemap/geos-2.2.3/source/io/StringTokenizer.cpp 2008年07月29日 19:59:43 UTC (rev 5925) @@ -36,7 +36,9 @@ #include <geos/io.h> +#include <cstring> + namespace geos { StringTokenizer::StringTokenizer(){ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5924 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5924&view=rev Author: jdh2358 Date: 2008年07月29日 18:34:11 +0000 (2008年7月29日) Log Message: ----------- trying in vein to get rid of acorr indent warning on doc build Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/__init__.py trunk/matplotlib/lib/matplotlib/axes.py Modified: trunk/matplotlib/lib/matplotlib/__init__.py =================================================================== --- trunk/matplotlib/lib/matplotlib/__init__.py 2008年07月29日 18:01:16 UTC (rev 5923) +++ trunk/matplotlib/lib/matplotlib/__init__.py 2008年07月29日 18:34:11 UTC (rev 5924) @@ -89,7 +89,7 @@ """ from __future__ import generators -__version__ = '0.98.3rc1' +__version__ = '0.98.3rc2' __revision__ = '$Revision$' __date__ = '$Date$' Modified: trunk/matplotlib/lib/matplotlib/axes.py =================================================================== --- trunk/matplotlib/lib/matplotlib/axes.py 2008年07月29日 18:01:16 UTC (rev 5923) +++ trunk/matplotlib/lib/matplotlib/axes.py 2008年07月29日 18:34:11 UTC (rev 5924) @@ -3317,7 +3317,7 @@ """ call signature:: - acorr(x, normed=False, detrend=mlab.detrend_none, usevlines=False, + acorr(x, normed=False, detrend=mlab.detrend_none, usevlines=False, maxlags=None, **kwargs) Plot the autocorrelation of *x*. If *normed* = *True*, @@ -3328,32 +3328,30 @@ Return value is a tuple (*lags*, *c*, *line*) where: - - *lags* are a length 2*maxlags+1 lag vector + - *lags* are a length 2*maxlags+1 lag vector - - *c* is the 2*maxlags+1 auto correlation vector + - *c* is the 2*maxlags+1 auto correlation vector - - *line* is a :class:`~matplotlib.lines.Line2D` instance - returned by :meth:`plot` + - *line* is a :class:`~matplotlib.lines.Line2D` instance + returned by :meth:`plot` The default *linestyle* is None and the default *marker* is ``'o'``, though these can be overridden with keyword args. The cross correlation is performed with :func:`numpy.correlate` with *mode* = 2. - If *usevlines* is *True*: + If *usevlines* is *True*, :meth:`~matplotlib.axes.Axes.vlines` + rather than :meth:`~matplotlib.axes.Axes.plot` is used to draw + vertical lines from the origin to the acorr. Otherwise, the + plot style is determined by the kwargs, which are + :class:`~matplotlib.lines.Line2D` properties. The return + value is a tuple (*lags*, *c*, *linecol*, *b*) where - :meth:`~matplotlib.axes.Axes.vlines` rather than - :meth:`~matplotlib.axes.Axes.plot` is used to draw - vertical lines from the origin to the acorr. Otherwise, - the plot style is determined by the kwargs, which are - :class:`~matplotlib.lines.Line2D` properties. The return - value is a tuple (*lags*, *c*, *linecol*, *b*) where + - *linecol* is the + :class:`~matplotlib.collections.LineCollection` - - *linecol* is the - :class:`~matplotlib.collections.LineCollection` + - *b* is the *x*-axis. - - *b* is the *x*-axis. - *maxlags* is a positive integer detailing the number of lags to show. The default value of *None* will return all ``(2*len(x)-1)`` lags. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5923 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5923&view=rev Author: jdh2358 Date: 2008年07月29日 18:01:16 +0000 (2008年7月29日) Log Message: ----------- special case contains test for degenerate rectangle Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py Modified: trunk/matplotlib/lib/matplotlib/backends/backend_wx.py =================================================================== --- trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月29日 17:47:50 UTC (rev 5922) +++ trunk/matplotlib/lib/matplotlib/backends/backend_wx.py 2008年07月29日 18:01:16 UTC (rev 5923) @@ -696,6 +696,10 @@ except AttributeError: self.SetInitialSize = getattr(self, 'SetBestFittingSize', do_nothing) + + if not hasattr(self,'IsShownOnScreen'): + self.IsShownOnScreen = self.IsVisible + # Create the drawing bitmap self.bitmap =wx.EmptyBitmap(w, h) DEBUG_MSG("__init__() - bitmap w:%d h:%d" % (w,h), 2, self) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5922 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5922&view=rev Author: jdh2358 Date: 2008年07月29日 17:47:50 +0000 (2008年7月29日) Log Message: ----------- special case contains test for degenerate rectangle Modified Paths: -------------- trunk/matplotlib/lib/matplotlib/patches.py Modified: trunk/matplotlib/lib/matplotlib/patches.py =================================================================== --- trunk/matplotlib/lib/matplotlib/patches.py 2008年07月29日 16:02:00 UTC (rev 5921) +++ trunk/matplotlib/lib/matplotlib/patches.py 2008年07月29日 17:47:50 UTC (rev 5922) @@ -401,6 +401,10 @@ return self._rect_transform def contains(self, mouseevent): + # special case the degernate rectangle + if self._width==0 or self._height==0: + return False, {} + x, y = self.get_transform().inverted().transform_point( (mouseevent.x, mouseevent.y)) return (x >= 0.0 and x <= 1.0 and y >= 0.0 and y <= 1.0), {} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5921 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5921&view=rev Author: jswhit Date: 2008年07月29日 16:02:00 +0000 (2008年7月29日) Log Message: ----------- change version numbers Modified Paths: -------------- trunk/toolkits/basemap/doc/conf.py Modified: trunk/toolkits/basemap/doc/conf.py =================================================================== --- trunk/toolkits/basemap/doc/conf.py 2008年07月29日 16:00:35 UTC (rev 5920) +++ trunk/toolkits/basemap/doc/conf.py 2008年07月29日 16:02:00 UTC (rev 5921) @@ -46,9 +46,9 @@ # other places throughout the built documents. # # The short X.Y version. -version = '0.99' +version = '0.99.1' # The full version, including alpha/beta/rc tags. -release = '0.99' +release = '0.99.1' # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5920 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5920&view=rev Author: jswhit Date: 2008年07月29日 16:00:35 +0000 (2008年7月29日) Log Message: ----------- add another section to users guide. Modified Paths: -------------- trunk/toolkits/basemap/doc/users/index.rst Added Paths: ----------- trunk/toolkits/basemap/doc/users/geography.rst Added: trunk/toolkits/basemap/doc/users/geography.rst =================================================================== --- trunk/toolkits/basemap/doc/users/geography.rst (rev 0) +++ trunk/toolkits/basemap/doc/users/geography.rst 2008年07月29日 16:00:35 UTC (rev 5920) @@ -0,0 +1,23 @@ +.. _geography: + +Drawing Coastlines, Rivers and Political Boundaries +=================================================== + +Basemap includes the +`GSSH <http://www.soest.hawaii.edu/wessel/gshhs/gshhs.html>`_ +coastline dataset, as well as datasets for rivers, state and +country boundaries from +`GMT <http://gmt.soest.hawaii.edu>`_. +These datasets can be used to draw coastlines, rivers and political +boundaries on maps at several different resolutions. The relevant Basemap +methods are: + +* :func:`~mpl_toolkits.basemap.Basemap.drawcoastlines`: draw coastlines. +* :func:`~mpl_toolkits.basemap.Basemap.fillcontinents`: color the interior + of continents (by filling the coastline polygons). +* :func:`~mpl_toolkits.basemap.Basemap.drawcountries`: draw country boundaries. +* :func:`~mpl_toolkits.basemap.Basemap.drawstates`: draw state boundaries + in North America. +* :func:`~mpl_toolkits.basemap.Basemap.drawrivers`: draw rivers. + +.. toctree:: Modified: trunk/toolkits/basemap/doc/users/index.rst =================================================================== --- trunk/toolkits/basemap/doc/users/index.rst 2008年07月29日 12:23:43 UTC (rev 5919) +++ trunk/toolkits/basemap/doc/users/index.rst 2008年07月29日 16:00:35 UTC (rev 5920) @@ -11,4 +11,5 @@ intro.rst mapsetup.rst + geography.rst graticule.rst This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5919 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5919&view=rev Author: jswhit Date: 2008年07月29日 12:23:43 +0000 (2008年7月29日) Log Message: ----------- fix docstring markup Modified Paths: -------------- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py Modified: trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py =================================================================== --- trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008年07月29日 12:20:11 UTC (rev 5918) +++ trunk/toolkits/basemap/lib/mpl_toolkits/basemap/__init__.py 2008年07月29日 12:23:43 UTC (rev 5919) @@ -298,7 +298,7 @@ Variable Name Description ================ ==================================================== projection map projection. Print the module variable - "supported_projections" to see a list of allowed + ``supported_projections`` to see a list of allowed values. aspect map aspect ratio (size of y dimension / size of x dimension). This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5918 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5918&view=rev Author: jswhit Date: 2008年07月29日 12:20:11 +0000 (2008年7月29日) Log Message: ----------- add link to API docs Modified Paths: -------------- trunk/toolkits/basemap/doc/users/mapsetup.rst Modified: trunk/toolkits/basemap/doc/users/mapsetup.rst =================================================================== --- trunk/toolkits/basemap/doc/users/mapsetup.rst 2008年07月29日 12:17:01 UTC (rev 5917) +++ trunk/toolkits/basemap/doc/users/mapsetup.rst 2008年07月29日 12:20:11 UTC (rev 5918) @@ -8,7 +8,8 @@ distortion, there are many map projections, each with it's own advantages and disadvantages. Basemap provides 19 different map projections. Some are global, some can only represent a portion of the globe. When -a Basemap class instance is created, the desired map projection must +a :class:`~mpl_toolkits.basemap.Basemap` class instance is +created, the desired map projection must be specified, along with information about the portion of the earth's surface that the map projection will describe. There are two basic ways of doing this. One is to provide the latitude and longitude values This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
Revision: 5917 http://matplotlib.svn.sourceforge.net/matplotlib/?rev=5917&view=rev Author: jswhit Date: 2008年07月29日 12:17:01 +0000 (2008年7月29日) Log Message: ----------- new section for users guide Modified Paths: -------------- trunk/toolkits/basemap/doc/users/index.rst Added Paths: ----------- trunk/toolkits/basemap/doc/users/graticule.rst Added: trunk/toolkits/basemap/doc/users/graticule.rst =================================================================== --- trunk/toolkits/basemap/doc/users/graticule.rst (rev 0) +++ trunk/toolkits/basemap/doc/users/graticule.rst 2008年07月29日 12:17:01 UTC (rev 5917) @@ -0,0 +1,13 @@ +.. _graticule: + +Drawing and Labelling Parallels and Meridians +============================================= + +Most maps include a graticule grid, a reference network of labelled +latitude and longitude lines. Basemap does this with the +:func:`~mpl_toolkits.basemap.Basemap.drawparallels` and +:func:`~mpl_toolkits.basemap.Basemap.drawmeridians` instance methods. +The longitude and latitude lines can be labelled where they +the map projection boundary. + +.. toctree:: Modified: trunk/toolkits/basemap/doc/users/index.rst =================================================================== --- trunk/toolkits/basemap/doc/users/index.rst 2008年07月29日 10:53:45 UTC (rev 5916) +++ trunk/toolkits/basemap/doc/users/index.rst 2008年07月29日 12:17:01 UTC (rev 5917) @@ -11,3 +11,4 @@ intro.rst mapsetup.rst + graticule.rst This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.