import React from "react"; import * as d3 from "d3"; import { ParamDef } from "../infertypes"; import { Datapoint } from "../types"; interface BinsDrawData { bins: d3.Bin[]; g: SVGSVGElement; draw_fn: any; } export interface HistogramData { all: Datapoint[]; selected: Datapoint[]; } export interface DistributionPlotData { height: number; width: number; nbins: number; axis: string; histData: HistogramData; param_def: ParamDef; animateMs: number; } export declare class DistributionPlot extends React.Component { /** * Supports both vertical and horizontal bar plots. * Will switch to vertical if we are plotting categorical data with too many distinct values. */ axisBottom: React.RefObject; axisLeft: React.RefObject; axisRight: React.RefObject; axisBottomName: React.RefObject; svgContainer: React.RefObject; histAll: React.RefObject; histSelected: React.RefObject; dataScale: any; isVertical(): boolean; figureWidth(): number; figureHeight(): number; createDataAxis(dataScale: any, animate: boolean): void; createDataScaleAndAxis(): void; createHistogram(): d3.HistogramGeneratorNumber; drawAllHistograms(animate: boolean): void; drawHistogramLines(hist: BinsDrawData, densityScale: d3.ScaleLinear, animate: boolean, binsOrdering: number[]): void; drawHistogramRects(hist: BinsDrawData, densityScale: d3.ScaleLinear, animate: boolean, binsOrdering: number[]): void; componentDidMount(): void; componentDidUpdate(prevProps: DistributionPlotData, prevState: {}): void; render(): JSX.Element; } export {};