Python matplotlib.patches.RegularPolygon() Examples
The following are 10
code examples of matplotlib.patches.RegularPolygon().
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.patches
, or try the search function
.
Example #1
Source File: plotting.py From kvae with MIT License | 6 votes |
def construct_ball_trajectory(var, r=1., cmap='Blues', start_color=0.4, shape='c'): # https://matplotlib.org/examples/color/colormaps_reference.html patches = [] for pos in var: if shape == 'c': patches.append(mpatches.Circle(pos, r)) elif shape == 'r': patches.append(mpatches.RegularPolygon(pos, 4, r)) elif shape == 's': patches.append(mpatches.RegularPolygon(pos, 6, r)) colors = np.linspace(start_color, .9, len(patches)) collection = PatchCollection(patches, cmap=cm.get_cmap(cmap), alpha=1.) collection.set_array(np.array(colors)) collection.set_clim(0, 1) return collection
Example #2
Source File: test_electrodes.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_HexElectrode(): with pytest.raises(TypeError): HexElectrode(0, 0, 0, [1, 2]) with pytest.raises(TypeError): HexElectrode(0, np.array([0, 1]), 0, 1) # Invalid radius: with pytest.raises(ValueError): HexElectrode(0, 0, 0, -5) # Check params: electrode = HexElectrode(0, 1, 2, 100) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.a, 100) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 1) npt.assert_equal(isinstance(ax.patches[0], RegularPolygon), True)
Example #3
Source File: test_prima.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_PhotovoltaicPixel(): electrode = PhotovoltaicPixel(0, 1, 2, 3, 4) npt.assert_almost_equal(electrode.x, 0) npt.assert_almost_equal(electrode.y, 1) npt.assert_almost_equal(electrode.z, 2) npt.assert_almost_equal(electrode.r, 3) npt.assert_almost_equal(electrode.a, 4) # Slots: npt.assert_equal(hasattr(electrode, '__slots__'), True) npt.assert_equal(hasattr(electrode, '__dict__'), False) # Plots: ax = electrode.plot() npt.assert_equal(len(ax.texts), 0) npt.assert_equal(len(ax.patches), 2) npt.assert_equal(isinstance(ax.patches[0], RegularPolygon), True) npt.assert_equal(isinstance(ax.patches[1], Circle), True) PhotovoltaicPixel(0, 1, 2, 3, 4)
Example #4
Source File: mpl.py From anaStruct with GNU General Public License v3.0 | 6 votes |
def __rotating_spring_support_patch(self, max_val): """ :param max_val: max scale of the plot """ radius = PATCH_SIZE * max_val for node, _ in self.system.supports_spring_y: r = np.arange(0, radius, 0.001) theta = 25 * np.pi * r / (0.2 * max_val) x = np.cos(theta) * r + node.vertex.x y = np.sin(theta) * r - radius + node.vertex.y self.one_fig.plot(x, y, color="r", zorder=9) # Triangle support_patch = mpatches.RegularPolygon( (node.vertex.x, node.vertex.y - radius * 3), numVertices=3, radius=radius * 0.9, color="r", zorder=9, ) self.one_fig.add_patch(support_patch)
Example #5
Source File: prima.py From pulse2percept with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __init__(self, x, y, z, r, a): super(PhotovoltaicPixel, self).__init__(x, y, z, a) if isinstance(r, (Sequence, np.ndarray)): raise TypeError("Radius of the active electrode must be a scalar.") if r <= 0: raise ValueError("Radius of the active electrode must be > 0, not " "%f." % r) self.r = r # Plot two objects: hex honeycomb and circular active electrode self.plot_patch = [RegularPolygon, Circle] self.plot_kwargs = [{'radius': a, 'numVertices': 6, 'alpha': 0.2, 'orientation': np.radians(30), 'fc': 'k', 'ec': 'k'}, {'radius': r, 'linewidth': 0, 'color': 'k', 'alpha': 0.5}]
Example #6
Source File: searcher.py From PyChemia with MIT License | 5 votes |
def add_structure(ax, patches, position, spacegroup, energy): """ Add one polygon to the patches list :param ax: :param patches: :param position: :param spacegroup: :param energy: :return: """ polygon = mpatches.RegularPolygon(position, spacegroup2poly(spacegroup), 0.5, clip_on=True) patches.append(polygon) label(ax, position, spacegroup, energy)
Example #7
Source File: Report_Orbital.py From PyChemia with MIT License | 5 votes |
def add_structure(ax, patches, position, spacegroup, energy): """ Add one polygon to the patches list :param ax: :param patches: :param position: :param spacegroup: :param energy: :return: """ polygon = mpatches.RegularPolygon(position, spacegroup2poly(spacegroup), 0.5, clip_on=True) patches.append(polygon) label(ax, position, spacegroup, energy)
Example #8
Source File: mpl.py From anaStruct with GNU General Public License v3.0 | 5 votes |
def __hinged_support_patch(self, max_val): """ :param max_val: max scale of the plot """ radius = PATCH_SIZE * max_val for node in self.system.supports_hinged: support_patch = mpatches.RegularPolygon( (node.vertex.x, node.vertex.y - radius), numVertices=3, radius=radius, color="r", zorder=9, ) self.one_fig.add_patch(support_patch)
Example #9
Source File: mpl.py From anaStruct with GNU General Public License v3.0 | 4 votes |
def __roll_support_patch(self, max_val): """ :param max_val: max scale of the plot """ radius = PATCH_SIZE * max_val count = 0 for node in self.system.supports_roll: direction = self.system.supports_roll_direction[count] x1 = np.cos(np.pi) * radius + node.vertex.x + radius z1 = np.sin(np.pi) * radius + node.vertex.y x2 = np.cos(np.radians(90)) * radius + node.vertex.x + radius z2 = np.sin(np.radians(90)) * radius + node.vertex.y x3 = np.cos(np.radians(270)) * radius + node.vertex.x + radius z3 = np.sin(np.radians(270)) * radius + node.vertex.y triangle = np.array([[x1, z1], [x2, z2], [x3, z3]]) if node.id in self.system.inclined_roll: angle = self.system.inclined_roll[node.id] triangle = rotate_xy(triangle, angle + np.pi * 0.5) support_patch = plt.Polygon(triangle, color="r", zorder=9) self.one_fig.add_patch(support_patch) self.one_fig.plot( triangle[1:, 0] - 0.5 * radius * np.sin(angle), triangle[1:, 1] - 0.5 * radius * np.cos(angle), color="r", ) elif direction == 2: # horizontal roll support_patch = mpatches.RegularPolygon( (node.vertex.x, node.vertex.y - radius), numVertices=3, radius=radius, color="r", zorder=9, ) self.one_fig.add_patch(support_patch) y = -node.vertex.z - 2 * radius self.one_fig.plot( [node.vertex.x - radius, node.vertex.x + radius], [y, y], color="r" ) elif direction == 1: # vertical roll # translate the support to the node support_patch = mpatches.Polygon(triangle, color="r", zorder=9) self.one_fig.add_patch(support_patch) y = node.vertex.y - radius self.one_fig.plot( [node.vertex.x + radius * 1.5, node.vertex.x + radius * 1.5], [y, y + 2 * radius], color="r", ) count += 1
Example #10
Source File: mpl.py From anaStruct with GNU General Public License v3.0 | 4 votes |
def __spring_support_patch(self, max_val): """ :param max_val: max scale of the plot """ h = PATCH_SIZE * max_val left = -0.5 * h right = 0.5 * h dh = 0.2 * h for node, _ in self.system.supports_spring_z: yval = np.arange(0, -9, -1) * dh + node.vertex.y xval = ( np.array([0, 0, left, right, left, right, left, 0, 0]) + node.vertex.x ) self.one_fig.plot(xval, yval, color="r", zorder=10) # Triangle support_patch = mpatches.RegularPolygon( (node.vertex.x, -node.vertex.z - h * 2.6), numVertices=3, radius=h * 0.9, color="r", zorder=10, ) self.one_fig.add_patch(support_patch) for node, _ in self.system.supports_spring_x: xval = np.arange(0, 9, 1) * dh + node.vertex.x yval = ( np.array([0, 0, left, right, left, right, left, 0, 0]) + node.vertex.y ) self.one_fig.plot(xval, yval, color="r", zorder=10) # Triangle support_patch = mpatches.RegularPolygon( (node.vertex.x + h * 1.7, -node.vertex.z - h), numVertices=3, radius=h * 0.9, color="r", zorder=10, ) self.one_fig.add_patch(support_patch)