sd-plotly
v1.5.0
Published
React Plotly components with Immutable.js for rendering logic
Maintainers
Readme
sd-plotly
React implementations of Plotly with Immutable for rendering logic
Installation and use
sd-plotly requires pandas-js DataFrame or Series objects for plotting in order to make rendering logic faster for API-based visualization.
npm install sd-plotly pandas-jsImporting
BarPlot
import ReactDOM from 'react-dom';
import { BarPlot } from 'sd-plotly';
import { DataFrame } from 'pandas-js';
const component = <BarPlot
id="my-id-to-render-into"
data={df}
xName="x"
yNames={["y"]}
yType="$,.0f"
yTicksFormat="$,.0f"
xLabel="X"
yLabel="Y"
xTicks={[1, 2, 3]}
title="Title"
marginTop={50}
/>;
ReactDOM.render(component, myDocumentElement);will create this bar chart:

Components
ScatterPlot
BarPlot
SDPlot
The base React Plotly component for plots
Props
|Prop|Type|Description|
|----|----|-----------|
bargap|number|Gap between the bars in barplot|
barmode|union|Type of bar chart to plot|
chartType|union|Type of chart|
className|string|class to give to SDPlot div|
configuration|signature|Plot.ly configuration object|
data|union|Data to render in the plot|
displayModeBar|boolean|Display the modebar?|
fontColor|string|Color to use for the font|
fontFamily|string|Name of the font family to use for text|
fontScale|number|Scaling factor for the font, relative to 1|
gridColor|string|Color to make horizontal/vertical lines on the chart|
height|number|Height of plot, in pixels|
horizontalLines|boolean|Display horizontal lines on the chart?|
hoverinfo|string|Hover info format https://plot.ly/javascript/reference/#scatter-hoverinfo|
id|string|Div id with which to render the SDPlot|
legendBackgroundColor|string|Background color for the chart legend, if displayed|
legendBorderColor|string|Border color for the chart legend, if displayed|
legendLocation|union|Location of the chart legend, if displayed|
marginBottom|number|Bottom margin for the plot|
marginLeft|number|Left margin for the plot|
marginRight|number|Right margin for the plot|
marginTop|number|Top margin for the plot|
opacity|number|Opacity of data points|
orientation|union|Orientation of chart|
padding|number|Padding in pixels|
palette|Array|Array of colors to use for the traces|
paperBackgroundColor|string|Color of paper background|
plotBackgroundColor|string|Color of plot background|
redrawDebounce|number|ms gap during which only the latest redraw requested should occur|
resizeDebounce|number|ms gap during which only the latest window resize event should cause a redraw|
secondaryAxis|boolean|Include a secondary axis?|
showLegend|boolean|Display the legend for the chart?|
title|string|Title of the chart|
traceNames|Array|Names for each of the traces|
traceTypes|Array|Types of each of the traces in the plot|
verticalLines|boolean|Display vertical lines on the chart?|
width|number|Width of plot, in pixels|
xIsDate|boolean|x data is a datetime?|
xLabel|string|Label for the x data series to display|
xName|string|Name of the x data series|
xRangemode|union|Type of range to use for the x axis|
xShowTickLabels|boolean|Show x-axis tick labels?|
xTickLabels|Array|Array of tick labels to use|
xTicksFormat|string|d3 formatting string to format x ticks|
xTicksPrefix|string|Prefix to use for x ticks|
xTicksReverse|boolean|Reverse the x axis?|
xTicksRotation|number|Rotation of x tick labels|
xType|string|d3 formatting string to format x values|
yHoverFormat|string|d3 formatting string to format y values on hover|
yLabel|string|Label for the y data series to display|
yNames|Array|Names of the y data series|
yRangemode|union|Type of range to use for the y axis|
yShowTickLabels|boolean|Show y-axis tick labels?|
yTicksFormat|string|d3 formatting string to format y ticks|
yTicksPrefix|string|Prefix to use for y ticks|
yTicksReverse|boolean|Reverse the y axis?|
yTicksRotation|number|Rotation of y tick labels|
yType|string|d3 formatting string to format y values|
Methods
toString
Returns
string
plotlyResize
Resize the plot on window resize events
_redraw
Redraw the chart when data is updated
layout
Plotly layout object
Returns
signature
{
title: string,
paper_bg_color: string,
height?: number,
width?: number,
plot_bg_color: string,
barmode?: 'relative' | 'group' | 'stack',
bargap?: number,
font: {family: string, size: number, color: string},
xaxis: T_AXIS,
yaxis: T_AXIS,
legend: T_LEGEND,
margin: T_MARGIN,
showlegend: boolean,
yaxis2?: T_AXIS_SECONDARY,
height?: number,
width?: number,
}xAxisStyle
Plotly x-axis style object
Returns
signature
{
title: string,
autorange: 'reversed' | true,
titlefont: {size: number},
tickangle: number,
tickfont: {size: number},
gridcolor: string,
tickprefix: string,
type: string,
tickformat: string,
hoverformat?: string,
rangemode: 'tozero' | 'nonnegative' | 'normal',
showticklabels: boolean,
}yAxisStyle
Plotly y-axis style object
Returns
signature
{
title: string,
autorange: 'reversed' | true,
titlefont: {size: number},
tickangle: number,
tickfont: {size: number},
gridcolor: string,
tickprefix: string,
type: string,
tickformat: string,
hoverformat?: string,
rangemode: 'tozero' | 'nonnegative' | 'normal',
showticklabels: boolean,
}legend
Plotly legend style object
Returns
signature
{
x: number,
y: number,
font: {size: number},
bgcolor: string,
bordercolor: string,
}margin
Plotly margin style object
Returns
signature
{
l: number,
t: number,
r: number,
b: number,
pad: number
}secondaryAxis
Plotly secondary axis style object
Returns
intersection
T_AXIS & {
overlaying: 'y',
side: 'right',
}chartData
Convert the Immutable.List passed in to the appropriate array format for Plotly.js
Returns
Array
Array<constants.T_TRACE>chartDataMultiple
Convert the Immutable.List for multiple plot to the appropriate array format for Plotly.js
Returns
Array
Array<constants.T_TRACE>Development
Testing and build
$ npm run test
$ npm run buildTesting uses Jest. Building requires the babel compiler.
