matminer.figrecipes.plotly package¶
Submodules¶
matminer.figrecipes.plotly.make_plots module¶
-
class
matminer.figrecipes.plotly.make_plots.
PlotlyFig
(plot_title=None, x_title=None, y_title=None, hovermode=u'closest', filename=None, plot_mode=u'offline', show_offline_plot=True, username=None, api_key=None, textsize=30, ticksize=25, fontfamily=None, height=800, width=1000, scale=None, margin_top=100, margin_bottom=80, margin_left=80, margin_right=80, pad=0)¶ -
__init__
(plot_title=None, x_title=None, y_title=None, hovermode=u'closest', filename=None, plot_mode=u'offline', show_offline_plot=True, username=None, api_key=None, textsize=30, ticksize=25, fontfamily=None, height=800, width=1000, scale=None, margin_top=100, margin_bottom=80, margin_left=80, margin_right=80, pad=0)¶ Class for making Plotly plots
- Args:
plot_title: (str) title of plot x_title: (str) title of x-axis y_title: (str) title of y-axis hovermode: (str) determines the mode of hover interactions. Can be ‘x’/’y’/’closest’/False filename: (str) name/filepath of plot file plot_mode: (str) (i) ‘offline’: creates and saves plots on the local disk, (ii) ‘notebook’: to embed plots
in a IPython/Jupyter notebook, (iii) ‘online’: save the plot in your online plotly account, or (iv) ‘static’: save a static image of the plot locally (but requiring plotly account credentials). Valid image formats are ‘png’, ‘svg’, ‘jpeg’, and ‘pdf’. The format is taken as the extension of the filename or as the supplied format. NOTE: Both ‘online’ and ‘static’ modes require either the fields ‘username’ and ‘api_key’ or the plotly credentials file to be set. See plotly website and documentation for details.- show_offline_plot: (bool) automatically open the plot (the plot is saved either way); only applies to
- ‘offline’ mode
username: (str) plotly account username api_key: (str) plotly account API key textsize: (int) size of text of plot title and axis titles ticksize: (int) size of ticks fontfamily: (str) HTML font family - the typeface that will be applied by the web browser. The web browser
will only be able to apply a font if it is available on the system which it operates. Provide multiple font families, separated by commas, to indicate the preference in which to apply fonts if they aren’t available on the system. The plotly service (at https://plot.ly or on-premise) generates images on a server, where only a select number of fonts are installed and supported. These include “Arial”, “Balto”,
“Courier New”, “Droid Sans”,, “Droid Serif”, “Droid Sans Mono”, “Gravitas One”, “Old Standard TT”, “Open Sans”, “Overpass”, “PT Sans Narrow”, “Raleway”, “Times New Roman”.height: (float) output height (in pixels) width: (float) output width (in pixels) scale: (float) Increase the resolution of the image by scale amount, eg: 3. Only valid for PNG and
JPEG images.margin_top: (float) Sets the top margin (in px) margin_bottom: (float) Sets the bottom margin (in px) margin_left: (float) Sets the left margin (in px) margin_right: (float) Sets the right margin (in px) pad: (float) Sets the amount of padding (in px) between the plotting area and the axis lines
Returns: None
-
bar_chart
(x, y)¶ Create a bar chart using Plotly
- Args:
- x: (list/numpy array/Pandas series of numbers, strings, or datetimes) sets the x coordinates y: (list/numpy array/Pandas series of numbers, strings, or datetimes) sets the y coordinates
Returns: a Plotly bar chart
-
create_plot
(fig)¶ Warning: not to be explicitly called by the user Creates the specific plot that has been set up by one of the functions below, and shows and/or saves the plot depending on user specification
- Args:
- fig: (dictionary) contains data and layout information
-
heatmap_plot
(data, x_labels=None, y_labels=None, colorscale=u'Viridis', colorscale_range=None, annotations_text=None, annotations_text_size=20, annotations_color=u'white')¶ Make a heatmap plot, either using 2D arrays of values, or a dataframe.
- Args:
data: (array) an array of arrays. For example, in case of a pandas dataframe ‘df’, data=df.values.tolist() x_labels: (array) an array of strings to label the heatmap columns y_labels: (array) an array of strings to label the heatmap rows colorscale: (str/array) Sets the colorscale. The colorscale must be an array containing arrays mapping a
normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, [[0, ‘rgb(0,0,255)’, [1, ‘rgb(255,0,0)’]]. Alternatively, colorscale may be a palette name string of the following list: Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis- colorscale_range: (array) Sets the minimum (first array item) and maximum value (second array item)
- of the colorscale
- annotations_text: (array) an array of arrays, with each value being a string annotation to the corresponding
- value in ‘data’
annotations_text_size: (int) size of annotation text annotations_color: (str/array) color of annotation text - accepts similar formats as other color variables
Returns: heatmap plot
-
histogram
(x, histnorm=u'', x_start=None, x_end=None, bin_size=1, color=u'rgba(70, 130, 180, 1)', bargap=0)¶ Create a histogram using Plotly
- Args:
x: (list) sample data histnorm: (str) Specifies the type of normalization used for this histogram trace. If “”, the span of each
bar corresponds to the number of occurrences (i.e. the number of data points lying inside the bins). If “percent”, the span of each bar corresponds to the percentage of occurrences with respect to the total number of sample points (here, the sum of all bin area equals 100%). If “density”, the span of each bar corresponds to the number of occurrences in a bin divided by the size of the bin interval (here, the sum of all bin area equals the total number of sample points). If “probability density”, the span of each bar corresponds to the probability that an event will fall into the corresponding bin (here, the sum of all bin area equals 1)- x_start: (float) starting value for x-axis bins. Note: after some testing, this variable does not seem to
- be read by Plotly when set to 0 for the latest version of Plotly as of this commit (Nov‘16).
x_end: (float) end value for x-axis bins bin_size: (float) step in-between value of each x axis bin color: (str/array) in the format of a (i) color name (eg: “red”), or (ii) a RGB tuple,
(eg: “rgba(255, 0, 0, 0.8)”), where the last number represents the marker opacity/transparency, which must be between 0.0 and 1.0., or (iii) hexagonal code (eg: “FFBAD2”)bargap: (float) gap between bars
Returns: a Plotly histogram plot
-
scatter_matrix
(dataframe, select_columns=None, index_colname=None, diag_kind=u'scatter', marker_size=10, height=800, width=1000, marker_outline_width=0, marker_outline_color=u'black')¶ Create a scatter matrix plot from dataframes using Plotly.
- Args:
dataframe: (array) array of the data with column headers select_columns: (list) names/headers of columns to plot from the dataframe index_colname: (str) name of the index column in data array diag_kind: (str) sets the chart type for the main diagonal plots (default=’scatter’)
Choose from ‘scatter’/’box’/’histogram’marker_size: (float) sets the marker size (in px) height: (int/float) sets the height of the chart width: (int/float) sets the width of the chart marker_outline_width: (int) thickness of marker outline (currently affects the outline of histograms too
when “diag_kind” = ‘histogram’)marker_outline_color: (str/array) color of marker outline - accepts similar formats as other color variables
Returns: a Plotly scatter matrix plot
-
violin_plot
(data, data_col=None, group_col=None, title=None, height=800, width=1000, colors=None, use_colorscale=False, groups=None)¶ Create a violin plot using Plotly.
- Args:
- data: (list/array) accepts either a list of numerical values, a list of dictionaries all with identical keys
- and at least one column of numeric values, or a pandas dataframe with at least one column of numbers
- data_col: (str) the header of the data column to be used from an inputted pandas dataframe. Not applicable
- if ‘data’ is a list of numeric values
- group_col: (str) applicable if grouping data by a variable. ‘group_header’ must be set to the name of the
- grouping variable
title: (str) the title of the violin plot height: (float) the height of the violin plot width: (float) the width of the violin plot colors: (str/tuple/list/dict) either a plotly scale name (Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu,
Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis), an rgb or hex color, a color tuple, a list of colors or a dictionary. An rgb color is of the form ‘rgb(x, y, z)’ where x, y and z belong to the interval [0, 255] and a color tuple is a tuple of the form (a, b, c) where a, b and c belong to [0, 1]. If colors is a list, it must contain valid color types as its members. If colors is a dictionary, its keys must represent group names, and corresponding values must be valid color types (str).- use_colorscale: (bool) Only applicable if grouping by another variable. Will implement a colorscale based
- on the first 2 colors of param colors. This means colors must be a list with at least 2 colors in it (Plotly colorscales are accepted since they map to a list of two rgb colors)
- groups: (list) list of group names (strings). This field is used when the same colorscale is required to be
- used for all violins.
Returns: a Plotly violin plot
-
xy_plot
(x_col, y_col, x_axis_type=u'linear', y_axis_type=u'linear', text=None, color=u'rgba(70, 130, 180, 1)', size=6, colorscale=u'Viridis', legend=None, showlegend=False, mode=u'markers', marker=u'circle', marker_fill=u'fill', hoverinfo=u'x+y+text', add_xy_plot=None, marker_outline_width=0, marker_outline_color=u'black', linedash=u'solid', linewidth=2, lineshape=u'linear', error_type=None, error_direction=None, error_array=None, error_value=None, error_symmetric=True, error_arrayminus=None, error_valueminus=None)¶ Make an XY scatter plot, either using arrays of values, or a dataframe.
- Args:
x_col: (array) x-axis values, which can be a list/array/dataframe column y_col: (array) y-axis values, which can be a list/array/dataframe column text: (str/array) text to use when hovering over points; a single string, or an array of strings, or a
dataframe column containing text strings- color: (str/array) in the format of a (i) color name (eg: “red”), or (ii) a RGB tuple,
- (eg: “rgba(255, 0, 0, 0.8)”), where the last number represents the marker opacity/transparency, which must be between 0.0 and 1.0., (iii) hexagonal code (eg: “FFBAD2”), or (iv) name of a dataframe numeric column to set the marker color scale to
- size: (int/array) marker size in the format of (i) a constant integer size, or (ii) name of a dataframe
- numeric column to set the marker size scale to. In the latter case, scaled Z-scores are used.
- colorscale: (str) Sets the colorscale. The colorscale must be an array containing arrays mapping a
- normalized value to an rgb, rgba, hex, hsl, hsv, or named color string. At minimum, a mapping for the lowest (0) and highest (1) values are required. For example, [[0, ‘rgb(0,0,255)’, [1, ‘rgb(255,0,0)’]]. Alternatively, colorscale may be a palette name string of the following list: Greys, YlGnBu, Greens, YlOrRd, Bluered, RdBu, Reds, Blues, Picnic, Rainbow, Portland, Jet, Hot, Blackbody, Earth, Electric, Viridis
legend: (str) plot legend mode: (str) marker style; can be ‘markers’/’lines’/’lines+markers’ marker: (str) Shape of marker symbol. For all options, please see
marker_fill: (str) Shape fill of marker symbol. Options are “fill”/”open”/”dot”/”open-dot” hoverinfo: (str) Any combination of “x”, “y”, “z”, “text”, “name” joined with a “+” OR “all” or “none” or
“skip”. Examples: “x”, “y”, “x+y”, “x+y+z”, “all” default: “x+y+text” Determines which trace information appear on hover. If none or skip are set, no information is displayed upon hovering. But, if none is set, click and hover events are still fired.showlegend: (bool) show legend or not add_xy_plot: (list) of dictionaries, each of which contain additional data to add to the xy plot. Keys are
names of arguments to the original xy_plot method - required keys are ‘x_col’, ‘y_col’, ‘text’, ‘mode’, ‘name’, ‘color’, ‘size’. Values are corresponding argument values in the same format as for the original xy_plot. Use None for values not to be set, else a KeyError will be raised. Optional keys are ‘marker’ and ‘marker_fill’ (same format as root keys)marker_outline_width: (int) thickness of marker outline marker_outline_color: (str/array) color of marker outline - accepts similar formats as other color variables linedash: (str) sets the dash style of a line. Options are ‘solid’/’dash’ linewidth: (int) sets the line width (in px) lineshape: (str) determines the line shape. With “spline” the lines are drawn using spline interpolation error_type: (str) Determines the rule used to generate the error bars. Options are,
- “data”: bar lengths are set in variable error_array/’error_arrayminus’,
- “percent”: bar lengths correspond to a percentage of underlying data. Set this percentage in the
variable ‘error_value’/’error_valueminus’,(iii) “constant”: bar lengths are of a constant value. Set this constant in the variable ‘error_value’/’error_valueminus’
error_direction: (str) direction of error bar, “x”/”y” error_array: (list/array/series) Sets the data corresponding the length of each error bar.
Values are plotted relative to the underlying data- error_value: (float) Sets the value of either the percentage (if error_type is set to “percent”) or
- the constant (if error_type is set to “constant”) corresponding to the lengths of the error bars.
- error_symmetric: (bool) Determines whether or not the error bars have the same length in both direction
- (top/bottom for vertical bars, left/right for horizontal bars
- error_arrayminus: (list/array/series) Sets the data corresponding the length of each error bar in the bottom
- (left) direction for vertical (horizontal) bars Values are plotted relative to the underlying data.
- error_valueminus: (float) Sets the value of either the percentage (if error_type is set to “percent”) or
- the constant (if error_type is set to “constant”) corresponding to the lengths of the error bars in the bottom (left) direction for vertical (horizontal) bars
Returns: XY scatter plot
-