tech.tablesaw.plotly.api.BarPlot Maven / Gradle / Ivy
package tech.tablesaw.plotly.api;
import tech.tablesaw.api.Table;
import tech.tablesaw.plotly.components.Figure;
import tech.tablesaw.plotly.components.Layout;
import tech.tablesaw.plotly.traces.BarTrace;
import tech.tablesaw.plotly.traces.BarTrace.Orientation;
import tech.tablesaw.plotly.traces.Trace;
class BarPlot {
protected static final int HEIGHT = 700;
protected static final int WIDTH = 900;
protected static Figure create(
Orientation orientation,
String title,
Table table,
String groupColName,
String numberColName) {
Layout layout = standardLayout(title).build();
BarTrace trace =
BarTrace.builder(table.categoricalColumn(groupColName), table.numberColumn(numberColName))
.orientation(orientation)
.build();
return new Figure(layout, trace);
}
protected static Figure create(
Orientation orientation,
String title,
Table table,
String groupColName,
Layout.BarMode barMode,
String... numberColNames) {
Layout layout = standardLayout(title).barMode(barMode).showLegend(true).build();
Trace[] traces = new Trace[numberColNames.length];
for (int i = 0; i < numberColNames.length; i++) {
String name = numberColNames[i];
BarTrace trace =
BarTrace.builder(table.categoricalColumn(groupColName), table.numberColumn(name))
.orientation(orientation)
.showLegend(true)
.name(name)
.build();
traces[i] = trace;
}
return new Figure(layout, traces);
}
private static Layout.LayoutBuilder standardLayout(String title) {
return Layout.builder().title(title).height(HEIGHT).width(WIDTH);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy