本文整理汇总了Python中matplotlib.collections.PatchCollection.set_picker方法的典型用法代码示例。如果您正苦于以下问题:Python PatchCollection.set_picker方法的具体用法?Python PatchCollection.set_picker怎么用?Python PatchCollection.set_picker使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类matplotlib.collections.PatchCollection
的用法示例。
在下文中一共展示了PatchCollection.set_picker方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: draw_nodes
# 需要导入模块: from matplotlib.collections import PatchCollection [as 别名]
# 或者: from matplotlib.collections.PatchCollection import set_picker [as 别名]
def draw_nodes(self, net=None, node_colors={}, node_radius={}):
if not net:
net = self.net
if type(node_colors) == str:
node_colors = {node: node_colors for node in net.nodes()}
nodeCircles = []
for n in net.nodes():
c = NodeCircle(tuple(net.pos[n]), node_radius.get(n, 8.0),
color=node_colors.get(n, 'r'),
ec='k', lw=1.0, ls='solid', picker=3)
nodeCircles.append(c)
node_collection = PatchCollection(nodeCircles, match_original=True)
node_collection.set_picker(3)
self.axes.add_collection(node_collection)
return node_collection
示例2: str
# 需要导入模块: from matplotlib.collections import PatchCollection [as 别名]
# 或者: from matplotlib.collections.PatchCollection import set_picker [as 别名]
#.........这里部分代码省略.........
self.image = image
else:
self.image = np.zeros_like(self.geom.pix_id, dtype=np.float)
self.norm = norm
def highlight_pixels(self, pixels, color='g', linewidth=1, alpha=0.75):
'''
Highlight the given pixels with a colored line around them
Parameters
----------
pixels : index-like
The pixels to highlight.
Can either be a list or array of integers or a
boolean mask of length number of pixels
color: a matplotlib conform color
the color for the pixel highlighting
linewidth: float
linewidth of the highlighting in points
alpha: 0 <= alpha <= 1
The transparency
'''
l = np.zeros_like(self.image)
l[pixels] = linewidth
self.pixel_highlighting.set_linewidth(l)
self.pixel_highlighting.set_alpha(alpha)
self.pixel_highlighting.set_edgecolor(color)
self._update()
def enable_pixel_picker(self):
""" enable ability to click on pixels """
self.pixels.set_picker(True) # enable click
self.pixels.set_pickradius(sqrt(u.Quantity(self.geom.pix_area[0])
.value) / np.pi)
self.pixels.set_snap(True) # snap cursor to pixel center
self.axes.figure.canvas.mpl_connect('pick_event', self._on_pick)
def set_limits_minmax(self, zmin, zmax):
""" set the color scale limits from min to max """
self.pixels.set_clim(zmin, zmax)
self.autoscale = False
self._update()
def set_limits_percent(self, percent=95):
""" auto-scale the color range to percent of maximum """
zmin = self.pixels.get_array().min()
zmax = self.pixels.get_array().max()
dz = zmax - zmin
frac = percent / 100.0
self.autoscale = False
self.set_limits_minmax(zmin, zmax - (1.0 - frac) * dz)
@property
def norm(self):
'''
The norm instance of the Display
Possible values:
- "lin": linear scale
- "log": log scale (cannot have negative values)
- "symlog": symmetric log scale (negative values are ok)
- any matplotlib.colors.Normalize instance, e. g. PowerNorm(gamma=-2)
'''
示例3: SimulationGui
# 需要导入模块: from matplotlib.collections import PatchCollection [as 别名]
# 或者: from matplotlib.collections.PatchCollection import set_picker [as 别名]
#.........这里部分代码省略.........
self.draw_edges(net)
self.draw_propagation_errors(str(self.ui.locKey.text()), net)
if subclusters:
node_colors = self.get_node_colors(net, subclusters=subclusters)
else:
node_colors = self.get_node_colors(net, algorithm=currentAlgorithm)
self.node_collection = self.draw_nodes(net, node_colors)
if drawMessages:
self.draw_messages(net)
self.draw_labels(net)
self.drawnNet = net
step_text = ' (step %d)' % self.net.algorithmState['step'] \
if isinstance(currentAlgorithm, NodeAlgorithm) else ''
self.axes.set_title((currentAlgorithm.name
if currentAlgorithm else '') + step_text)
self.refresh_visibility()
# To save multiple figs of the simulation uncomment next two lines:
#self.fig.savefig('network-alg-%d-step-%d.png' %
# (self.net.algorithmState['index'], self.net.algorithmState['step']))
def draw_nodes(self, net=None, node_colors={}, node_radius={}):
if not net:
net = self.net
if type(node_colors) == str:
node_colors = {node: node_colors for node in net.nodes()}
nodeCircles = []
for n in net.nodes():
c = NodeCircle(tuple(net.pos[n]), node_radius.get(n, 8.0),
color=node_colors.get(n, 'r'),
ec='k', lw=1.0, ls='solid', picker=3)
nodeCircles.append(c)
node_collection = PatchCollection(nodeCircles, match_original=True)
node_collection.set_picker(3)
self.axes.add_collection(node_collection)
return node_collection
def get_node_colors(self, net, algorithm=None, subclusters=None,
drawLegend=True):
COLORS = 'rgbcmyw' * 100
node_colors = {}
if algorithm:
color_map = {}
if isinstance(algorithm, NodeAlgorithm):
for ind, status in enumerate(algorithm.STATUS.keys()):
if status == 'IDLE':
color_map.update({status: 'k'})
else:
color_map.update({status: COLORS[ind]})
if drawLegend:
proxy = []
labels = []
for status, color in color_map.items():
proxy.append(Circle((0, 0), radius=8.0,
color=color, ec='k',
lw=1.0, ls='solid'))
labels.append(status)
self.fig.legends = []
self.fig.legend(proxy, labels, loc=8,
prop={'size': '10.0'}, ncol=len(proxy),
title='Statuses for %s:'
% algorithm.name)
for n in net.nodes():
if n.status == '' or not n.status in color_map.keys():
node_colors[n] = 'r'
else:
示例4: bool
# 需要导入模块: from matplotlib.collections import PatchCollection [as 别名]
# 或者: from matplotlib.collections.PatchCollection import set_picker [as 别名]
#.........这里部分代码省略.........
# Set up some nice plot defaults
self.axes.set_aspect('equal', 'datalim')
self.axes.set_title(title)
self.axes.set_xlabel("X position ({})".format(self.geom.pix_x.unit))
self.axes.set_ylabel("Y position ({})".format(self.geom.pix_y.unit))
self.axes.autoscale_view()
# set up a patch to display when a pixel is clicked (and
# pixel_picker is enabled):
self._active_pixel = copy.copy(patches[0])
self._active_pixel.set_facecolor('r')
self._active_pixel.set_alpha(0.5)
self._active_pixel.set_linewidth(2.0)
self._active_pixel.set_visible(False)
self.axes.add_patch(self._active_pixel)
self._active_pixel_label = plt.text(self._active_pixel.xy[0],
self._active_pixel.xy[1],
"0",
horizontalalignment='center',
verticalalignment='center')
self._active_pixel_label.set_visible(False)
# enable ability to click on pixel and do something (can be
# enabled on-the-fly later as well:
if allow_pick:
self.enable_pixel_picker()
def enable_pixel_picker(self):
""" enable ability to click on pixels """
self.pixels.set_picker(True) # enable click
self.pixels.set_pickradius(sqrt(u.Quantity(self.geom.pix_area[0])
.value) / np.pi)
self.pixels.set_snap(True) # snap cursor to pixel center
self.axes.figure.canvas.mpl_connect('pick_event', self._on_pick)
def set_cmap(self, cmap):
""" Change the color map
Parameters
----------
self: type
description
cmap: `matplotlib.colors.ColorMap`
a color map, e.g. from `matplotlib.pyplot.cm.*`
"""
self.pixels.set_cmap(cmap)
def set_image(self, image):
"""
Change the image displayed on the Camera.
Parameters
----------
image: array_like
array of values corresponding to the pixels in the CameraGeometry.
"""
image = np.asanyarray(image)
if image.shape != self.geom.pix_x.shape:
raise ValueError("Image has a different shape {} than the"
"given CameraGeometry {}"
.format(image.shape, self.geom.pix_x.shape))
self.pixels.set_array(image)