hypertools.plot

hypertools.plot(x, fmt=None, marker=None, markers=None, linestyle=None, linestyles=None, color=None, colors=None, palette='hls', group=None, labels=None, legend=None, title=None, elev=10, azim=-60, ndims=3, normalize=False, n_clusters=None, save_path=None, animate=False, duration=30, tail_duration=2, rotations=2, zoom=1, chemtrails=False, precog=False, bullettime=False, frame_rate=50, explore=False, show=True)[source]

Plots dimensionality reduced data and parses plot arguments

Parameters:

x : Numpy array, DataFrame or list of arrays/dfs

Data for the plot. The form should be samples (rows) by features (cols).

fmt : str or list of strings

A list of format strings. All matplotlib format strings are supported.

linestyle(s) : str or list of str

A list of line styles

marker(s) : str or list of str

A list of marker types

color(s) : str or list of str

A list of marker types

palette : str

A matplotlib or seaborn color palette

group : str/int/float or list

A list of group labels. Length must match the number of rows in your dataset. If the data type is numerical, the values will be mapped to rgb values in the specified palette. If the data type is strings, the points will be labeled categorically. To label a subset of points, use None (i.e. [‘a’, None, ‘b’,’a’]).

labels : list

A list of labels for each point. Must be dimensionality of data (x). If no label is wanted for a particular point, input None.

legend : list

A list of string labels to be plotted in a legend (one for each list item).

title : str

A title for the plot

ndims : int

An int representing the number of dims to plot in. Must be 1,2, or 3. NOTE: Currently only works with static plots.

normalize : str or False

If set to ‘across’, the columns of the input data will be z-scored across lists (default). If set to ‘within’, the columns will be z-scored within each list that is passed. If set to ‘row’, each row of the input data will be z-scored. If set to False, the input data will be returned (default is False).

n_clusters : int

If n_clusters is passed, HyperTools will perform k-means clustering with the k parameter set to n_clusters. The resulting clusters will be plotted in different colors according to the color palette.

save_path str :

Path to save the image/movie. Must include the file extension in the save path (i.e. save_path=’/path/to/file/image.png’). NOTE: If saving an animation, FFMPEG must be installed (this is a matplotlib req). FFMPEG can be easily installed on a mac via homebrew brew install ffmpeg or linux via apt-get apt-get install ffmpeg. If you don’t have homebrew (mac only), you can install it like this: /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”.

animate : bool, ‘parallel’ or ‘spin’

If True or ‘parallel’, plots the data as an animated trajectory, with each dataset plotted simultaneously. If ‘spin’, all the data is plotted at once but the camera spins around the plot (default: False).

duration (animation only) : float

Length of the animation in seconds (default: 30 seconds)

tail_duration (animation only) : float

Sets the length of the tail of the data (default: 2 seconds)

rotations (animation only) : float

Number of rotations around the box (default: 2)

zoom (animation only) : float

How far to zoom into the plot, positive numbers will zoom in (default: 0)

chemtrails (animation only) : bool

A low-opacity trail is left behind the trajectory (default: False).

precog (animation only) : bool

A low-opacity trail is plotted ahead of the trajectory (default: False).

bullettime (animation only) : bool

A low-opacity trail is plotted ahead and behind the trajectory (default: False).

frame_rate (animation only) : int or float

Frame rate for animation (default: 50)

explore : bool

Displays user defined labels will appear on hover. If no labels are passed, the point index and coordinate will be plotted. To use, set explore=True. Note: Explore mode is currently only supported for 3D static plots, and is an experimental feature (i.e it may not yet work properly).

show : bool

If set to False, the figure will not be displayed, but the figure, axis and data objects will still be returned (default: True).

Returns:

fig, ax, data, line_ani : matplotlib.figure.figure, matplotlib.axis.axes, numpy.array, matplotlib.animation.funcanimation

The plot function outputs a figure handle, axis handle, data, and line animation object. The line animation object is None if animation=False.