All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
tech.tablesaw.plotly.api.Scatter3DPlot Maven / Gradle / Ivy
package tech.tablesaw.plotly.api;
import tech.tablesaw.api.Table;
import tech.tablesaw.plotly.components.Axis;
import tech.tablesaw.plotly.components.Figure;
import tech.tablesaw.plotly.components.Layout;
import tech.tablesaw.plotly.components.Marker;
import tech.tablesaw.plotly.components.threeD.Scene;
import tech.tablesaw.plotly.traces.Scatter3DTrace;
import tech.tablesaw.table.TableSliceGroup;
import java.util.List;
public class Scatter3DPlot {
private static final int HEIGHT = 800;
private static final int WIDTH = 1000;
public static Figure create(String title, Table table, String xCol, String yCol, String zCol, String groupCol) {
TableSliceGroup tables = table.splitOn(table.categoricalColumn(groupCol));
Layout layout = standardLayout(title, xCol, yCol, zCol, true);
Scatter3DTrace[] traces = new Scatter3DTrace[tables.size()];
for (int i = 0; i < tables.size(); i++) {
List tableList = tables.asTableList();
traces[i] = Scatter3DTrace.builder(
tableList.get(i).numberColumn(xCol),
tableList.get(i).numberColumn(yCol),
tableList.get(i).numberColumn(zCol))
.showLegend(true)
.name(tableList.get(i).name())
.build();
}
return new Figure(layout, traces);
}
public static Figure create(String title, Table table, String xCol, String yCol, String zCol) {
Layout layout = standardLayout(title, xCol, yCol, zCol, false);
Scatter3DTrace trace = Scatter3DTrace.builder(
table.numberColumn(xCol),
table.numberColumn(yCol),
table.numberColumn(zCol))
.build();
return new Figure(layout, trace);
}
public static Figure create(String title, Table table, String xCol, String yCol, String zCol, String sizeColumn, String groupCol) {
TableSliceGroup tables = table.splitOn(table.categoricalColumn(groupCol));
Layout layout = standardLayout(title, xCol, yCol, zCol, false);
Scatter3DTrace[] traces = new Scatter3DTrace[tables.size()];
for (int i = 0; i < tables.size(); i++) {
List tableList = tables.asTableList();
Marker marker = Marker.builder()
.size(tableList.get(i).numberColumn(sizeColumn))
//.opacity(.75)
.build();
traces[i] = Scatter3DTrace.builder(
tableList.get(i).numberColumn(xCol),
tableList.get(i).numberColumn(yCol),
tableList.get(i).numberColumn(zCol))
.marker(marker)
.showLegend(true)
.name(tableList.get(i).name())
.build();
}
return new Figure(layout, traces);
}
private static Layout standardLayout(String title, String xCol, String yCol, String zCol, boolean showLegend) {
return Layout.builder()
.title(title)
.height(HEIGHT)
.width(WIDTH)
.showLegend(showLegend)
.scene(Scene.sceneBuilder()
.xAxis(Axis.builder()
.title(xCol)
.build())
.yAxis(Axis.builder()
.title(yCol)
.build())
.zAxis(Axis.builder()
.title(zCol)
.build())
.build())
.build();
}
}