# pybedtools.contrib.plotting.Track

class `pybedtools.contrib.plotting.``Track`(features, chrom=None, ybase=0, yheight=1, visibility='dense', stranded=True, **kwargs)
  `__init__`(features, chrom=None, ybase=0, yheight=1, visibility='dense', stranded=True, **kwargs)

    Subclass of matplotlib’s PolyCollection that can be added to an Axes.

    Parameters:

    - features – Can be an existing BedTool, or anything than can be used to create a BedTool (e.g., a filename or a generator of Interval objects)
    - ybase – y-coord of the bottom edge of the track (in data coordinates)
    - yheight – How high each feature will be, in data coordinates
    - visibility –

      Mimics the settings in the UCSC Genome Browser:

      - ”dense” is the default; overlapping features can be seen if you set alpha < 1.
      - ”squish” prevents adjacent features from overlapping. This keeps `yheight` for all features, so if you have a lot of features piling up, the track will be a lot higher on the y-axis than `yheight`.
    - stranded –

      If boolean and True, will draw arrrow-shaped features to indicate direction (where the point is 10% of the total gene length)

      If a dictionary, map strands to colors, e.g., {‘+’: ‘r’, ‘-‘: ‘b’}.

    - kwargs – Additional keyword args are passed to matplotlib.collections.PolyCollection.

    Notes:

    After creating a track, use the `ymax` attribute to get the max y-value used in the track – useful if you’ve created a “squish” track but would like to stack another track on top, and need to calculate what the new Track’s `ybase` should be.

    The returned PolyCollection will have the `features` attribute, which contains the BedTool it was created from – so you can write callback functions for event handling, e.g.:

        def callback(event):
            '''
            prints the feature's line when clicked in the plot
            '''
            coll = event.artist
            for i in event.ind:
                print coll.features[i]

        fig.canvas.mpl_connect('on_pick', callback)

        >>> a = pybedtools.example_bedtool('a.bed')
        >>> track = pybedtools.contrib.plotting.Track(a, alpha=0.5, picker=5)
        >>> import matplotlib.pyplot as plt
        >>> fig = plt.figure()
        >>> ax = fig.add_subplot(111)
        >>> ax.add_collection(track) #doctest: +ELLIPSIS
        <pybedtools.contrib.plotting.Track object at 0x...>
        >>> limits = ax.axis('tight')

  Methods

  `__init__`(features[, chrom, ybase, yheight, …]) | Subclass of matplotlib’s PolyCollection that can be added to an Axes.
  `add_callback`(func) | Add a callback function that will be called whenever one of the `.Artist`’s properties changes.
  `add_checker`(checker) | Add an entry to a dictionary of boolean flags that are set to True when the mappable is changed.
  `autoscale`() | Autoscale the scalar limits on the norm instance using the current array
  `autoscale_None`() | Autoscale the scalar limits on the norm instance using the current array, changing only limits that are None
  `changed`() | Call this whenever the mappable is changed to notify all the callbackSM listeners to the ‘changed’ signal
  `check_update`(checker) | If mappable has changed since the last check, return True; else return False
  `contains`(mouseevent) | Test whether the mouse event occurred in the collection.
  `convert_xunits`(x) | Convert x using the unit type of the xaxis.
  `convert_yunits`(y) | Convert y using the unit type of the yaxis.
  `draw`(renderer) | Draw the Artist using the given renderer.
  `findobj`([match, include_self]) | Find artist objects.
  `format_cursor_data`(data) | Return a string representation of data.
  `get_agg_filter`() | Return filter function to be used for agg filter.
  `get_alpha`() | Return the alpha value used for blending - not supported on all backends
  `get_animated`() | Return the animated state.
  `get_array`() | Return the array
  `get_capstyle`() |
  `get_children`() | Return a list of the child `.Artist`s of this `.Artist`.
  `get_clim`() | return the min, max of the color limits for image scaling
  `get_clip_box`() | Return the clipbox.
  `get_clip_on`() | Return whether the artist uses clipping.
  `get_clip_path`() | Return the clip path.
  `get_cmap`() | return the colormap
  `get_contains`() | Return the custom contains function of the artist if set, or None.
  `get_cursor_data`(event) | Return the cursor data for a given event.
  `get_dashes`() | Alias for `get_linestyle`.
  `get_datalim`(transData) |
  `get_ec`() | Alias for `get_edgecolor`.
  `get_edgecolor`() |
  `get_edgecolors`() | Alias for `get_edgecolor`.
  `get_facecolor`() |
  `get_facecolors`() | Alias for `get_facecolor`.
  `get_fc`() | Alias for `get_facecolor`.
  `get_figure`() | Return the `.Figure` instance the artist belongs to.
  `get_fill`() | return whether fill is set
  `get_gid`() | Return the group id.
  `get_hatch`() | Return the current hatching pattern.
  `get_in_layout`() | Return boolean flag, `True` if artist is included in layout calculations.
  `get_joinstyle`() |
  `get_label`() | Return the label used for this artist in the legend.
  `get_linestyle`() |
  `get_linestyles`() | Alias for `get_linestyle`.
  `get_linewidth`() |
  `get_linewidths`() | Alias for `get_linewidth`.
  `get_ls`() | Alias for `get_linestyle`.
  `get_lw`() | Alias for `get_linewidth`.
  `get_offset_position`() | Returns how offsets are applied for the collection.
  `get_offset_transform`() |
  `get_offsets`() | Return the offsets for the collection.
  `get_path_effects`() |
  `get_paths`() |
  `get_picker`() | Return the picking behavior of the artist.
  `get_pickradius`() |
  `get_rasterized`() | Return whether the artist is to be rasterized.
  `get_sizes`() | Returns the sizes of the elements in the collection.
  `get_sketch_params`() | Returns the sketch parameters for the artist.
  `get_snap`() | Returns the snap setting.
  `get_tightbbox`(renderer) | Like `Artist.get_window_extent`, but includes any clipping.
  `get_transform`() | Return the `.Transform` instance used by this artist.
  `get_transformed_clip_path_and_affine`() | Return the clip path with the non-affine part of its transformation applied, and the remaining affine part of its transformation.
  `get_transforms`() |
  `get_url`() | Return the url.
  `get_urls`() |
  `get_visible`() | Return the visibility.
  `get_window_extent`(renderer) | Get the axes bounding box in display space.
  `get_xlims`(ax) | Needs `ax` to convert to transData coords
  `get_zorder`() | Return the artist’s zorder.
  `have_units`() | Return True if units are set on the x or y axes.
  `is_transform_set`() | Return whether the Artist has an explicitly set transform.
  `pchanged`() | Call all of the registered callbacks.
  `pick`(mouseevent) | Process a pick event.
  `pickable`() | Return whether the artist is pickable.
  `properties`() | Return a dictionary of all the properties of the artist.
  `remove`() | Remove the artist from the figure if possible.
  `remove_callback`(oid) | Remove a callback based on its observer id.
  `set`(**kwargs) | A property batch setter.
  `set_aa`(aa) | Alias for `set_antialiased`.
  `set_agg_filter`(filter_func) | Set the agg filter.
  `set_alpha`(alpha) | Set the alpha transparencies of the collection.
  `set_animated`(b) | Set the artist’s animation state.
  `set_antialiased`(aa) | Set the antialiasing state for rendering.
  `set_antialiaseds`(aa) | Alias for `set_antialiased`.
  `set_array`(A) | Set the image array from numpy array A.
  `set_capstyle`(cs) | Set the capstyle for the collection (for all its elements).
  `set_clim`([vmin, vmax]) | set the norm limits for image scaling; if vmin is a length2 sequence, interpret it as `(vmin, vmax)` which is used to support setp
  `set_clip_box`(clipbox) | Set the artist’s clip `.Bbox`.
  `set_clip_on`(b) | Set whether the artist uses clipping.
  `set_clip_path`(path[, transform]) | Set the artist’s clip path, which may be:
  `set_cmap`(cmap) | set the colormap for luminance data
  `set_color`(c) | Set both the edgecolor and the facecolor.
  `set_contains`(picker) | Define a custom contains test for the artist.
  `set_dashes`(ls) | Alias for `set_linestyle`.
  `set_ec`(c) | Alias for `set_edgecolor`.
  `set_edgecolor`(c) | Set the edgecolor(s) of the collection.
  `set_edgecolors`(c) | Alias for `set_edgecolor`.
  `set_facecolor`(c) | Set the facecolor(s) of the collection.
  `set_facecolors`(c) | Alias for `set_facecolor`.
  `set_fc`(c) | Alias for `set_facecolor`.
  `set_figure`(fig) | Set the `.Figure` instance the artist belongs to.
  `set_gid`(gid) | Set the (group) id for the artist.
  `set_hatch`(hatch) | Set the hatching pattern
  `set_in_layout`(in_layout) | Set if artist is to be included in layout calculations, E.g.
  `set_joinstyle`(js) | Set the joinstyle for the collection (for all its elements).
  `set_label`(s) | Set a label that will be displayed in the legend.
  `set_linestyle`(ls) | Set the linestyle(s) for the collection.
  `set_linestyles`(ls) | Alias for `set_linestyle`.
  `set_linewidth`(lw) | Set the linewidth(s) for the collection.
  `set_linewidths`(lw) | Alias for `set_linewidth`.
  `set_ls`(ls) | Alias for `set_linestyle`.
  `set_lw`(lw) | Alias for `set_linewidth`.
  `set_norm`(norm) | Set the normalization instance.
  `set_offset_position`(offset_position) | Set how offsets are applied.
  `set_offsets`(offsets) | Set the offsets for the collection.
  `set_path_effects`(path_effects) | Set the path effects.
  `set_paths`(verts[, closed]) | This allows one to delay initialization of the vertices.
  `set_picker`(picker) | Define the picking behavior of the artist.
  `set_pickradius`(pr) | Set the pick radius used for containment tests.
  `set_rasterized`(rasterized) | Force rasterized (bitmap) drawing in vector backend output.
  `set_sizes`(sizes[, dpi]) | Set the sizes of each member of the collection.
  `set_sketch_params`([scale, length, randomness]) | Sets the sketch parameters.
  `set_snap`(snap) | Set the snapping behavior.
  `set_transform`(t) | Set the artist transform.
  `set_url`(url) | Set the url for the artist.

  `set_urls`(urls)

  Parameters: |

  `set_verts`(verts[, closed]) | This allows one to delay initialization of the vertices.
  `set_verts_and_codes`(verts, codes) | This allows one to initialize vertices with path codes.
  `set_visible`(b) | Set the artist’s visibility.
  `set_zorder`(level) | Set the zorder for the artist.
  `to_rgba`(x[, alpha, bytes, norm]) | Return a normalized rgba array corresponding to x.
  `update`(props) | Update this artist’s properties from the dictionary props.
  `update_from`(other) | copy properties from other to self
  `update_scalarmappable`() | Update colors from the scalar mappable array, if it is not None.

  Attributes

  `aname` |
  `axes` | The `~.axes.Axes` instance the artist resides in, or None.
  `midpoint` |
  `mouseover` |
  `stale` | Whether the artist is ‘stale’ and needs to be re-drawn for the output to match the internal state of the artist.
  `sticky_edges` | `x` and `y` sticky edge lists for autoscaling.
  `zorder` |