Package qupath.lib.gui.charts
Class Charts.ScatterChartBuilder
java.lang.Object
qupath.lib.gui.charts.Charts.ScatterChartBuilder
- Enclosing class:
Charts
Builder for creating scatter charts.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionbuild()
Build a chart according to the specified parameters.centroids
(Collection<? extends PathObject> pathObjects) Plot centroids for the specified objects in pixel units.centroids
(Collection<? extends PathObject> pathObjects, PixelCalibration cal) Plot centroids for the specified objects using a fixed pixel calibration.protected ScatterChart
<Number, Number> protected ScatterChart
<Number, Number> createNewChart
(Axis<Number> xAxis, Axis<Number> yAxis) protected String
Get a window title to use for charts of this kind, assuming the user has not specified one.protected Charts.ScatterChartBuilder
getThis()
height
(double height) Set the preferred height of the chart.Specify anImageData
object.legend
(boolean show) Specify whether the legend should be shown or not.Specify the side of the chart where the legend should be shown.Specify the side of the chart where the legend should be shown.limitDatapoints
(int max) Choose the maximum number of supported datapoints.markerOpacity
(double opacity) Specify the marker opacity.measurements
(Collection<? extends PathObject> pathObjects, String xMeasurement, String yMeasurement) Plot two measurements against one another for the specified objects.Set the parent window.Create a scatterplot using arrays of numeric values.Create a scatterplot using collections of numeric values, with an associated custom object.Create a scatterplot using collections of numeric values, with an associated custom object.series
(String name, Collection<? extends Number> x, Collection<? extends Number> y) Create a scatterplot using collections of numeric values.series
(String name, Collection<? extends T> collection, Function<T, Number> xFun, Function<T, Number> yFun) Plot values extracted from objects within a specified collection.series
(String name, Collection<XYChart.Data<Number, Number>> data) Create a scatterplot from existing data plots.show()
Add the chart to a stage, and show it in the Application thread.size
(double width, double height) Set the preferred size of the chart.Specify the chart title.toStage()
Add the chart to a stage, but do not show it.Show all datapoints, without subsampling, even when this may cause performance issues.protected void
updateChart
(ScatterChart<Number, Number> chart) Method that applies properties of this builder to the chart.viewer
(QuPathViewer viewer) Specify a viewer.width
(double width) Set the preferred width of the chart.windowTitle
(String title) Title to use for the window, if the chart is shown.xAxisMax
(double upperBound) Set the upper bound for the x-axis.xAxisMin
(double lowerBound) Set the lower bound for the x-axis.xAxisRange
(double lowerBound, double upperBound) Set the lower and upper bounds for the x-axis.Specify the x-axis label.yAxisMax
(double upperBound) Set the upper bound for the y-axis.yAxisMin
(double lowerBound) Set the lower bound for the y-axis.yAxisRange
(double lowerBound, double upperBound) Set the lower and upper bounds for the y-axis.Specify the y-axis label.
-
Field Details
-
xLabel
-
yLabel
-
viewer
-
imageData
-
title
-
legendVisible
protected boolean legendVisible -
legendSide
-
markerOpacity
protected double markerOpacity -
width
protected double width -
height
protected double height
-
-
Method Details
-
limitDatapoints
Choose the maximum number of supported datapoints. Scattercharts are rather 'heavyweight', and including many thousands of datapoints can cause severe performance issues due to high processing and memory requirements.By default, datapoints will be randomly subsampled to a 'manageable number' where necessary, which can be customized with this setting.
- Parameters:
max
- the maximum number of data points to show- Returns:
- this builder
- See Also:
-
unlimitedDatapoints
Show all datapoints, without subsampling, even when this may cause performance issues. Use with caution.- Returns:
- this builder
- See Also:
-
getDefaultWindowTitle
Get a window title to use for charts of this kind, assuming the user has not specified one.- Returns:
- a suitable title to use
-
centroids
public <T> Charts.ScatterChartBuilder centroids(Collection<? extends PathObject> pathObjects, PixelCalibration cal) Plot centroids for the specified objects using a fixed pixel calibration.- Parameters:
pathObjects
- the objects to plotcal
- the pixel calibration used to convert the centroids into other units- Returns:
- this builder
-
centroids
Plot centroids for the specified objects in pixel units.- Parameters:
pathObjects
- the objects to plot.- Returns:
- this builder
-
measurements
public Charts.ScatterChartBuilder measurements(Collection<? extends PathObject> pathObjects, String xMeasurement, String yMeasurement) Plot two measurements against one another for the specified objects.- Parameters:
pathObjects
- the objects to plotxMeasurement
- the measurement to extract from each object's measurement list for the x locationyMeasurement
- the measurement to extract from each object's measurement list for the y location- Returns:
- this builder
-
series
public <T> Charts.ScatterChartBuilder series(String name, Collection<? extends T> collection, Function<T, Number> xFun, Function<T, Number> yFun) Plot values extracted from objects within a specified collection.- Type Parameters:
T
-- Parameters:
name
-collection
- the objects to plotxFun
- function capable of extracting a numeric value for the x location from each object in the collectionyFun
- function capable of extracting a numeric value for the y location from each object in the collection- Returns:
- this builder
-
series
public Charts.ScatterChartBuilder series(String name, Collection<? extends Number> x, Collection<? extends Number> y) Create a scatterplot using collections of numeric values.- Parameters:
name
-x
-y
-- Returns:
- this builder
-
series
Create a scatterplot using arrays of numeric values.- Parameters:
name
-x
- x-valuesy
- y-values- Returns:
- this builder
-
series
Create a scatterplot using collections of numeric values, with an associated custom object.- Type Parameters:
T
-- Parameters:
name
-x
- x-valuesy
- y-valuesextra
- array of values to associate with each data point; should be the same length as x and y- Returns:
- this builder
-
series
Create a scatterplot using collections of numeric values, with an associated custom object.- Type Parameters:
T
-- Parameters:
name
-x
- x-valuesy
- y-valuesextra
- list of values to associate with each data point; should be the same length as x and y- Returns:
- this builder
-
series
Create a scatterplot from existing data plots.- Parameters:
name
-data
- the data points to plot- Returns:
- this builder
-
updateChart
Method that applies properties of this builder to the chart. Each subclass should call the method in the parent class to ensure its properties have been applied.- Parameters:
chart
-
-
createNewChart
-
getThis
-
xAxisMin
Set the lower bound for the x-axis.- Parameters:
lowerBound
-- Returns:
- this builder
-
yAxisMin
Set the lower bound for the y-axis.- Parameters:
lowerBound
-- Returns:
- this builder
-
xAxisMax
Set the upper bound for the x-axis.- Parameters:
upperBound
-- Returns:
- this builder
-
yAxisMax
Set the upper bound for the y-axis.- Parameters:
upperBound
-- Returns:
- this builder
-
xAxisRange
Set the lower and upper bounds for the x-axis.- Parameters:
lowerBound
-upperBound
-- Returns:
- this builder
-
yAxisRange
Set the lower and upper bounds for the y-axis.- Parameters:
lowerBound
-upperBound
-- Returns:
- this builder
-
createNewChart
-
xLabel
Specify the x-axis label.- Parameters:
label
- the label to display- Returns:
- this builder
-
yLabel
Specify the y-axis label.- Parameters:
label
- the label to display- Returns:
- this builder
-
title
Specify the chart title.- Parameters:
title
- the title to display- Returns:
- this builder
-
legend
Specify whether the legend should be shown or not.- Parameters:
show
- if true, show the legend; otherwise hide the legend- Returns:
- this builder
-
legend
Specify the side of the chart where the legend should be shown. Valid values are"top", "bottom", "left", "right"
.Any other value (including null) will result in the legend being hidden.
- Parameters:
side
- the side where the legend should be shown- Returns:
- this builder
-
legend
Specify the side of the chart where the legend should be shown. If null, the legend will be hidden.- Parameters:
side
- the side where the legend should be shown- Returns:
- this builder
-
markerOpacity
Specify the marker opacity.- Parameters:
opacity
- value between 0 (transparent) and 1 (opaque).- Returns:
- this builder
-
imageData
Specify anImageData
object. This can be used to make some charts 'live', e.g. if they relate to objects within the hierarchy of this data.- Parameters:
imageData
- the imageData to associated with this chart- Returns:
- this builder
-
viewer
Specify a viewer. This can be used to make some charts 'live', e.g. if they relate to objects within the viewer.- Parameters:
viewer
- the viewer to associated with this chart- Returns:
- this builder
-
width
Set the preferred width of the chart.- Parameters:
width
- preferred width- Returns:
- this builder
-
height
Set the preferred height of the chart.- Parameters:
height
- preferred height- Returns:
- this builder
-
size
Set the preferred size of the chart.- Parameters:
width
- preferred widthheight
- preferred height- Returns:
- this builder
-
parent
Set the parent window. If not set, QuPath will try to choose a sensible default. This is useful to avoid the chart falling 'behind' other windows when not in focus.This is relevant only if
show()
ortoStage()
will be called.- Parameters:
parent
- the requested parent window- Returns:
- this builder
-
windowTitle
Title to use for the window, if the chart is shown.This is relevant only if
show()
ortoStage()
will be called.- Parameters:
title
- window title- Returns:
- this builder
-
build
Build a chart according to the specified parameters.- Returns:
- the chart
-
toStage
Add the chart to a stage, but do not show it.- Returns:
- the stage containing this
Chart
. - See Also:
-
show
Add the chart to a stage, and show it in the Application thread.- Returns:
- the stage containing this
Chart
. - See Also:
-