Python matplotlib._tri.Triangulation() Examples
The following are 30
code examples of matplotlib._tri.Triangulation().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
matplotlib._tri
, or try the search function
.

Example #1
Source File: triangulation.py From matplotlib-4-abaqus with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=np.bool) if len(self.mask.shape) != 1 or \ self.mask.shape[0] != self.triangles.shape[0]: raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #2
Source File: triangulation.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #3
Source File: test_triangulation.py From coffeegrindsize with MIT License | 6 votes |
def test_trirefiner_fortran_contiguous_triangles(): # github issue 4180. Test requires two arrays of triangles that are # identical except that one is C-contiguous and one is fortran-contiguous. triangles1 = np.array([[2, 0, 3], [2, 1, 0]]) assert not np.isfortran(triangles1) triangles2 = np.array(triangles1, copy=True, order='F') assert np.isfortran(triangles2) x = np.array([0.39, 0.59, 0.43, 0.32]) y = np.array([33.99, 34.01, 34.19, 34.18]) triang1 = mtri.Triangulation(x, y, triangles1) triang2 = mtri.Triangulation(x, y, triangles2) refiner1 = mtri.UniformTriRefiner(triang1) refiner2 = mtri.UniformTriRefiner(triang2) fine_triang1 = refiner1.refine_triangulation(subdiv=1) fine_triang2 = refiner2.refine_triangulation(subdiv=1) assert_array_equal(fine_triang1.triangles, fine_triang2.triangles)
Example #4
Source File: test_triangulation.py From coffeegrindsize with MIT License | 6 votes |
def test_qhull_triangle_orientation(): # github issue 4437. xi = np.linspace(-2, 2, 100) x, y = map(np.ravel, np.meshgrid(xi, xi)) w = np.logical_and(x > y - 1, np.logical_and(x < -1.95, y > -1.2)) x, y = x[w], y[w] theta = np.radians(25) x1 = x*np.cos(theta) - y*np.sin(theta) y1 = x*np.sin(theta) + y*np.cos(theta) # Calculate Delaunay triangulation using Qhull. triang = mtri.Triangulation(x1, y1) # Neighbors returned by Qhull. qhull_neighbors = triang.neighbors # Obtain neighbors using own C++ calculation. triang._neighbors = None own_neighbors = triang.neighbors assert_array_equal(qhull_neighbors, own_neighbors)
Example #5
Source File: triangulation.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #6
Source File: test_triangulation.py From coffeegrindsize with MIT License | 6 votes |
def test_tripcolor(): x = np.asarray([0, 0.5, 1, 0, 0.5, 1, 0, 0.5, 1, 0.75]) y = np.asarray([0, 0, 0, 0.5, 0.5, 0.5, 1, 1, 1, 0.75]) triangles = np.asarray([ [0, 1, 3], [1, 4, 3], [1, 2, 4], [2, 5, 4], [3, 4, 6], [4, 7, 6], [4, 5, 9], [7, 4, 9], [8, 7, 9], [5, 8, 9]]) # Triangulation with same number of points and triangles. triang = mtri.Triangulation(x, y, triangles) Cpoints = x + 0.5*y xmid = x[triang.triangles].mean(axis=1) ymid = y[triang.triangles].mean(axis=1) Cfaces = 0.5*xmid + ymid plt.subplot(121) plt.tripcolor(triang, Cpoints, edgecolors='k') plt.title('point colors') plt.subplot(122) plt.tripcolor(triang, facecolors=Cfaces, edgecolors='k') plt.title('facecolors')
Example #7
Source File: test_triangulation.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_tripcolor(): x = np.asarray([0, 0.5, 1, 0, 0.5, 1, 0, 0.5, 1, 0.75]) y = np.asarray([0, 0, 0, 0.5, 0.5, 0.5, 1, 1, 1, 0.75]) triangles = np.asarray([ [0, 1, 3], [1, 4, 3], [1, 2, 4], [2, 5, 4], [3, 4, 6], [4, 7, 6], [4, 5, 9], [7, 4, 9], [8, 7, 9], [5, 8, 9]]) # Triangulation with same number of points and triangles. triang = mtri.Triangulation(x, y, triangles) Cpoints = x + 0.5*y xmid = x[triang.triangles].mean(axis=1) ymid = y[triang.triangles].mean(axis=1) Cfaces = 0.5*xmid + ymid plt.subplot(121) plt.tripcolor(triang, Cpoints, edgecolors='k') plt.title('point colors') plt.subplot(122) plt.tripcolor(triang, facecolors=Cfaces, edgecolors='k') plt.title('facecolors')
Example #8
Source File: triangulation.py From neural-network-animation with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=np.bool) if (len(self.mask.shape) != 1 or self.mask.shape[0] != self.triangles.shape[0]): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #9
Source File: triangulation.py From coffeegrindsize with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #10
Source File: triangulation.py From CogAlg with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #11
Source File: triangulation.py From twitter-stock-recommendation with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #12
Source File: triangulation.py From ImageFusion with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=np.bool) if (len(self.mask.shape) != 1 or self.mask.shape[0] != self.triangles.shape[0]): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #13
Source File: triangulation.py From Mastering-Elasticsearch-7.0 with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #14
Source File: test_triangulation.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_trirefiner_fortran_contiguous_triangles(): # github issue 4180. Test requires two arrays of triangles that are # identical except that one is C-contiguous and one is fortran-contiguous. triangles1 = np.array([[2, 0, 3], [2, 1, 0]]) assert not np.isfortran(triangles1) triangles2 = np.array(triangles1, copy=True, order='F') assert np.isfortran(triangles2) x = np.array([0.39, 0.59, 0.43, 0.32]) y = np.array([33.99, 34.01, 34.19, 34.18]) triang1 = mtri.Triangulation(x, y, triangles1) triang2 = mtri.Triangulation(x, y, triangles2) refiner1 = mtri.UniformTriRefiner(triang1) refiner2 = mtri.UniformTriRefiner(triang2) fine_triang1 = refiner1.refine_triangulation(subdiv=1) fine_triang2 = refiner2.refine_triangulation(subdiv=1) assert_array_equal(fine_triang1.triangles, fine_triang2.triangles)
Example #15
Source File: test_triangulation.py From twitter-stock-recommendation with MIT License | 6 votes |
def test_tripcolor(): x = np.asarray([0, 0.5, 1, 0, 0.5, 1, 0, 0.5, 1, 0.75]) y = np.asarray([0, 0, 0, 0.5, 0.5, 0.5, 1, 1, 1, 0.75]) triangles = np.asarray([ [0, 1, 3], [1, 4, 3], [1, 2, 4], [2, 5, 4], [3, 4, 6], [4, 7, 6], [4, 5, 9], [7, 4, 9], [8, 7, 9], [5, 8, 9]]) # Triangulation with same number of points and triangles. triang = mtri.Triangulation(x, y, triangles) Cpoints = x + 0.5*y xmid = x[triang.triangles].mean(axis=1) ymid = y[triang.triangles].mean(axis=1) Cfaces = 0.5*xmid + ymid plt.subplot(121) plt.tripcolor(triang, Cpoints, edgecolors='k') plt.title('point colors') plt.subplot(122) plt.tripcolor(triang, facecolors=Cfaces, edgecolors='k') plt.title('facecolors')
Example #16
Source File: triangulation.py From Computable with MIT License | 6 votes |
def set_mask(self, mask): """ Set or clear the mask array. This is either None, or a boolean array of shape (ntri). """ if mask is None: self.mask = None else: self.mask = np.asarray(mask, dtype=np.bool) if len(self.mask.shape) != 1 or \ self.mask.shape[0] != self.triangles.shape[0]: raise ValueError('mask array must have same length as ' 'triangles array') # Set mask in C++ Triangulation. if self._cpp_triangulation is not None: self._cpp_triangulation.set_mask(self.mask) # Clear derived fields so they are recalculated when needed. self._edges = None self._neighbors = None # Recalculate TriFinder if it exists. if self._trifinder is not None: self._trifinder._initialize()
Example #17
Source File: test_triangulation.py From python3_ios with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_qhull_triangle_orientation(): # github issue 4437. xi = np.linspace(-2, 2, 100) x, y = map(np.ravel, np.meshgrid(xi, xi)) w = np.logical_and(x > y - 1, np.logical_and(x < -1.95, y > -1.2)) x, y = x[w], y[w] theta = np.radians(25) x1 = x*np.cos(theta) - y*np.sin(theta) y1 = x*np.sin(theta) + y*np.cos(theta) # Calculate Delaunay triangulation using Qhull. triang = mtri.Triangulation(x1, y1) # Neighbors returned by Qhull. qhull_neighbors = triang.neighbors # Obtain neighbors using own C++ calculation. triang._neighbors = None own_neighbors = triang.neighbors assert_array_equal(qhull_neighbors, own_neighbors)
Example #18
Source File: test_triangulation.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_delaunay(): # No duplicate points, regular grid. nx = 5 ny = 4 x, y = np.meshgrid(np.linspace(0.0, 1.0, nx), np.linspace(0.0, 1.0, ny)) x = x.ravel() y = y.ravel() npoints = nx*ny ntriangles = 2 * (nx-1) * (ny-1) nedges = 3*nx*ny - 2*nx - 2*ny + 1 # Create delaunay triangulation. triang = mtri.Triangulation(x, y) # The tests in the remainder of this function should be passed by any # triangulation that does not contain duplicate points. # Points - floating point. assert_array_almost_equal(triang.x, x) assert_array_almost_equal(triang.y, y) # Triangles - integers. assert len(triang.triangles) == ntriangles assert np.min(triang.triangles) == 0 assert np.max(triang.triangles) == npoints-1 # Edges - integers. assert len(triang.edges) == nedges assert np.min(triang.edges) == 0 assert np.max(triang.edges) == npoints-1 # Neighbors - integers. # Check that neighbors calculated by C++ triangulation class are the same # as those returned from delaunay routine. neighbors = triang.neighbors triang._neighbors = None assert_array_equal(triang.neighbors, neighbors) # Is each point used in at least one triangle? assert_array_equal(np.unique(triang.triangles), np.arange(npoints))
Example #19
Source File: triangulation.py From twitter-stock-recommendation with MIT License | 5 votes |
def __init__(self, x, y, triangles=None, mask=None): self.x = np.asarray(x, dtype=np.float64) self.y = np.asarray(y, dtype=np.float64) if self.x.shape != self.y.shape or self.x.ndim != 1: raise ValueError("x and y must be equal-length 1-D arrays") self.mask = None self._edges = None self._neighbors = None self.is_delaunay = False if triangles is None: # No triangulation specified, so use matplotlib._qhull to obtain # Delaunay triangulation. self.triangles, self._neighbors = _qhull.delaunay(x, y) self.is_delaunay = True else: # Triangulation specified. Copy, since we may correct triangle # orientation. self.triangles = np.array(triangles, dtype=np.int32, order='C') if self.triangles.ndim != 2 or self.triangles.shape[1] != 3: raise ValueError('triangles must be a (?,3) array') if self.triangles.max() >= len(self.x): raise ValueError('triangles max element is out of bounds') if self.triangles.min() < 0: raise ValueError('triangles min element is out of bounds') if mask is not None: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Underlying C++ object is not created until first needed. self._cpp_triangulation = None # Default TriFinder not created until needed. self._trifinder = None
Example #20
Source File: triangulation.py From twitter-stock-recommendation with MIT License | 5 votes |
def get_cpp_triangulation(self): # Return the underlying C++ Triangulation object, creating it # if necessary. if self._cpp_triangulation is None: self._cpp_triangulation = _tri.Triangulation( self.x, self.y, self.triangles, self.mask, self._edges, self._neighbors, not self.is_delaunay) return self._cpp_triangulation
Example #21
Source File: test_triangulation.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_delaunay_insufficient_points(x, y): with pytest.raises(ValueError): mtri.Triangulation(x, y)
Example #22
Source File: test_triangulation.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_delaunay_points_in_line(): # Cannot triangulate points that are all in a straight line, but check # that delaunay code fails gracefully. x = np.linspace(0.0, 10.0, 11) y = np.linspace(0.0, 10.0, 11) with pytest.raises(RuntimeError): mtri.Triangulation(x, y) # Add an extra point not on the line and the triangulation is OK. x = np.append(x, 2.0) y = np.append(y, 8.0) triang = mtri.Triangulation(x, y)
Example #23
Source File: triangulation.py From ImageFusion with MIT License | 5 votes |
def __init__(self, x, y, triangles=None, mask=None): self.x = np.asarray(x, dtype=np.float64) self.y = np.asarray(y, dtype=np.float64) if self.x.shape != self.y.shape or len(self.x.shape) != 1: raise ValueError("x and y must be equal-length 1-D arrays") self.mask = None self._edges = None self._neighbors = None self.is_delaunay = False if triangles is None: # No triangulation specified, so use matplotlib._qhull to obtain # Delaunay triangulation. self.triangles, self._neighbors = _qhull.delaunay(x, y) self.is_delaunay = True else: # Triangulation specified. Copy, since we may correct triangle # orientation. self.triangles = np.array(triangles, dtype=np.int32) if self.triangles.ndim != 2 or self.triangles.shape[1] != 3: raise ValueError('triangles must be a (?,3) array') if self.triangles.max() >= len(self.x): raise ValueError('triangles max element is out of bounds') if self.triangles.min() < 0: raise ValueError('triangles min element is out of bounds') if mask is not None: self.mask = np.asarray(mask, dtype=np.bool) if (len(self.mask.shape) != 1 or self.mask.shape[0] != self.triangles.shape[0]): raise ValueError('mask array must have same length as ' 'triangles array') # Underlying C++ object is not created until first needed. self._cpp_triangulation = None # Default TriFinder not created until needed. self._trifinder = None
Example #24
Source File: test_triangulation.py From coffeegrindsize with MIT License | 5 votes |
def test_delaunay_insufficient_points(x, y): with pytest.raises(ValueError): mtri.Triangulation(x, y)
Example #25
Source File: test_triangulation.py From coffeegrindsize with MIT License | 5 votes |
def test_delaunay_points_in_line(): # Cannot triangulate points that are all in a straight line, but check # that delaunay code fails gracefully. x = np.linspace(0.0, 10.0, 11) y = np.linspace(0.0, 10.0, 11) with pytest.raises(RuntimeError): mtri.Triangulation(x, y) # Add an extra point not on the line and the triangulation is OK. x = np.append(x, 2.0) y = np.append(y, 8.0) triang = mtri.Triangulation(x, y)
Example #26
Source File: test_triangulation.py From coffeegrindsize with MIT License | 5 votes |
def test_delaunay(): # No duplicate points, regular grid. nx = 5 ny = 4 x, y = np.meshgrid(np.linspace(0.0, 1.0, nx), np.linspace(0.0, 1.0, ny)) x = x.ravel() y = y.ravel() npoints = nx*ny ntriangles = 2 * (nx-1) * (ny-1) nedges = 3*nx*ny - 2*nx - 2*ny + 1 # Create delaunay triangulation. triang = mtri.Triangulation(x, y) # The tests in the remainder of this function should be passed by any # triangulation that does not contain duplicate points. # Points - floating point. assert_array_almost_equal(triang.x, x) assert_array_almost_equal(triang.y, y) # Triangles - integers. assert len(triang.triangles) == ntriangles assert np.min(triang.triangles) == 0 assert np.max(triang.triangles) == npoints-1 # Edges - integers. assert len(triang.edges) == nedges assert np.min(triang.edges) == 0 assert np.max(triang.edges) == npoints-1 # Neighbors - integers. # Check that neighbors calculated by C++ triangulation class are the same # as those returned from delaunay routine. neighbors = triang.neighbors triang._neighbors = None assert_array_equal(triang.neighbors, neighbors) # Is each point used in at least one triangle? assert_array_equal(np.unique(triang.triangles), np.arange(npoints))
Example #27
Source File: triangulation.py From coffeegrindsize with MIT License | 5 votes |
def get_cpp_triangulation(self): """ Return the underlying C++ Triangulation object, creating it if necessary. """ if self._cpp_triangulation is None: self._cpp_triangulation = _tri.Triangulation( self.x, self.y, self.triangles, self.mask, self._edges, self._neighbors, not self.is_delaunay) return self._cpp_triangulation
Example #28
Source File: triangulation.py From coffeegrindsize with MIT License | 5 votes |
def __init__(self, x, y, triangles=None, mask=None): self.x = np.asarray(x, dtype=np.float64) self.y = np.asarray(y, dtype=np.float64) if self.x.shape != self.y.shape or self.x.ndim != 1: raise ValueError("x and y must be equal-length 1-D arrays") self.mask = None self._edges = None self._neighbors = None self.is_delaunay = False if triangles is None: # No triangulation specified, so use matplotlib._qhull to obtain # Delaunay triangulation. self.triangles, self._neighbors = _qhull.delaunay(x, y) self.is_delaunay = True else: # Triangulation specified. Copy, since we may correct triangle # orientation. self.triangles = np.array(triangles, dtype=np.int32, order='C') if self.triangles.ndim != 2 or self.triangles.shape[1] != 3: raise ValueError('triangles must be a (?,3) array') if self.triangles.max() >= len(self.x): raise ValueError('triangles max element is out of bounds') if self.triangles.min() < 0: raise ValueError('triangles min element is out of bounds') if mask is not None: self.mask = np.asarray(mask, dtype=bool) if self.mask.shape != (self.triangles.shape[0],): raise ValueError('mask array must have same length as ' 'triangles array') # Underlying C++ object is not created until first needed. self._cpp_triangulation = None # Default TriFinder not created until needed. self._trifinder = None
Example #29
Source File: triangulation.py From ImageFusion with MIT License | 5 votes |
def get_cpp_triangulation(self): # Return the underlying C++ Triangulation object, creating it # if necessary. if self._cpp_triangulation is None: self._cpp_triangulation = _tri.Triangulation( self.x, self.y, self.triangles, self.mask, self._edges, self._neighbors) return self._cpp_triangulation
Example #30
Source File: triangulation.py From Computable with MIT License | 5 votes |
def get_cpp_triangulation(self): # Return the underlying C++ Triangulation object, creating it # if necessary. if self._cpp_triangulation is None: self._cpp_triangulation = _tri.Triangulation( self.x, self.y, self.triangles, self.mask, self._edges, self._neighbors) return self._cpp_triangulation