下面列出了怎么用javafx.scene.chart.CategoryAxis的API类实例代码及写法,或者点击链接到github查看源代码。
public static LabeledHorizontalBarChart create(boolean displayCategoryAxis, ChartCoordinate chartCoordinate) {
CategoryAxis categoryAxis = new CategoryAxis();
categoryAxis.setSide(Side.LEFT);
categoryAxis.setTickLabelsVisible(displayCategoryAxis);
categoryAxis.setGapStartAndEnd(true);
NumberAxis numberAxis = new NumberAxis();
numberAxis.setSide(Side.TOP);
switch (chartCoordinate) {
case LogarithmicE:
numberAxis.setTickLabelFormatter(new LogarithmicECoordinate());
break;
case Logarithmic10:
numberAxis.setTickLabelFormatter(new Logarithmic10Coordinate());
break;
case SquareRoot:
numberAxis.setTickLabelFormatter(new SquareRootCoordinate());
break;
}
return new LabeledHorizontalBarChart(numberAxis, categoryAxis)
.setChartCoordinate(chartCoordinate);
}
public static LabeledBarChart create(boolean displayCategoryAxis, ChartCoordinate chartCoordinate) {
CategoryAxis categoryAxis = new CategoryAxis();
categoryAxis.setSide(Side.BOTTOM);
categoryAxis.setTickLabelsVisible(displayCategoryAxis);
categoryAxis.setGapStartAndEnd(true);
NumberAxis numberAxis = new NumberAxis();
numberAxis.setSide(Side.LEFT);
switch (chartCoordinate) {
case LogarithmicE:
numberAxis.setTickLabelFormatter(new LogarithmicECoordinate());
break;
case Logarithmic10:
numberAxis.setTickLabelFormatter(new Logarithmic10Coordinate());
break;
case SquareRoot:
numberAxis.setTickLabelFormatter(new SquareRootCoordinate());
break;
}
return new LabeledBarChart(categoryAxis, numberAxis)
.setChartCoordinate(chartCoordinate);
}
private BarChart createBarChart() {
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(tableModel.getColumnNames()));
xAxis.setLabel("Year");
double tickUnit = tableModel.getTickUnit();
NumberAxis yAxis = new NumberAxis();
yAxis.setTickUnit(tickUnit);
yAxis.setLabel("Units Sold");
final BarChart chart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
Platform.runLater(new Runnable() {
public void run() {
XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) chart.getData().get(row);
BarChart.Data data = s.getData().get(column);
data.setYValue(value);
}
});
}
}
});
return chart;
}
protected LineChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final LineChart<String,Number> lc = new LineChart<String,Number>(xAxis,yAxis);
// setup chart
lc.setTitle("LineChart with Category Axis");
xAxis.setLabel("X Axis");
yAxis.setLabel("Y Axis");
// add starting data
XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
series.setName("Data Series 1");
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[0], 50d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[1], 80d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[2], 90d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[3], 30d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[4], 122d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[5], 10d));
lc.getData().add(series);
return lc;
}
public BarChartSample() {
String[] years = {"2007", "2008", "2009"};
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(years));
NumberAxis yAxis = new NumberAxis("Units Sold", 0.0d, 3000.0d, 1000.0d);
ObservableList<BarChart.Series> barChartData = FXCollections.observableArrayList(
new BarChart.Series("Apples", FXCollections.observableArrayList(
new BarChart.Data(years[0], 567d),
new BarChart.Data(years[1], 1292d),
new BarChart.Data(years[2], 1292d)
)),
new BarChart.Series("Lemons", FXCollections.observableArrayList(
new BarChart.Data(years[0], 956),
new BarChart.Data(years[1], 1665),
new BarChart.Data(years[2], 2559)
)),
new BarChart.Series("Oranges", FXCollections.observableArrayList(
new BarChart.Data(years[0], 1154),
new BarChart.Data(years[1], 1927),
new BarChart.Data(years[2], 2774)
))
);
BarChart chart = new BarChart(xAxis, yAxis, barChartData, 25.0d);
getChildren().add(chart);
}
public ImageBarChartSample() {
String imageBarChartCss = ImageBarChartSample.class.getResource("ImageBarChart.css").toExternalForm();
BarChart barChart = new BarChart(new CategoryAxis(), new NumberAxis());
barChart.setLegendVisible(false);
barChart.getStylesheets().add(imageBarChartCss);
barChart.getData().add(
new XYChart.Series<String, Integer>("Sales Per Product",
FXCollections.observableArrayList(
new XYChart.Data<String, Integer>("SUV", 120),
new XYChart.Data<String, Integer>("Sedan", 50),
new XYChart.Data<String, Integer>("Truck", 180),
new XYChart.Data<String, Integer>("Van", 20))));
Scene scene = new Scene(barChart, 350, 300);
scene.getStylesheets().add(ImageBarChartSample.class.getResource("ImageBarChart.css").toString());
getChildren().add(barChart);
}
protected LineChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final LineChart<String,Number> lc = new LineChart<String,Number>(xAxis,yAxis);
// setup chart
lc.setTitle("LineChart with Category Axis");
xAxis.setLabel("X Axis");
yAxis.setLabel("Y Axis");
// add starting data
XYChart.Series<String,Number> series = new XYChart.Series<String,Number>();
series.setName("Data Series 1");
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[0], 50d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[1], 80d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[2], 90d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[3], 30d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[4], 122d));
series.getData().add(new XYChart.Data<String,Number>(CATEGORIES[5], 10d));
lc.getData().add(series);
return lc;
}
public BarChartSample() {
String[] years = {"2007", "2008", "2009"};
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(years));
NumberAxis yAxis = new NumberAxis("Units Sold", 0.0d, 3000.0d, 1000.0d);
ObservableList<BarChart.Series> barChartData = FXCollections.observableArrayList(
new BarChart.Series("Apples", FXCollections.observableArrayList(
new BarChart.Data(years[0], 567d),
new BarChart.Data(years[1], 1292d),
new BarChart.Data(years[2], 1292d)
)),
new BarChart.Series("Lemons", FXCollections.observableArrayList(
new BarChart.Data(years[0], 956),
new BarChart.Data(years[1], 1665),
new BarChart.Data(years[2], 2559)
)),
new BarChart.Series("Oranges", FXCollections.observableArrayList(
new BarChart.Data(years[0], 1154),
new BarChart.Data(years[1], 1927),
new BarChart.Data(years[2], 2774)
))
);
BarChart chart = new BarChart(xAxis, yAxis, barChartData, 25.0d);
getChildren().add(chart);
}
public ImageBarChartSample() {
String imageBarChartCss = ImageBarChartSample.class.getResource("ImageBarChart.css").toExternalForm();
BarChart barChart = new BarChart(new CategoryAxis(), new NumberAxis());
barChart.setLegendVisible(false);
barChart.getStylesheets().add(imageBarChartCss);
barChart.getData().add(
new XYChart.Series<String, Integer>("Sales Per Product",
FXCollections.observableArrayList(
new XYChart.Data<String, Integer>("SUV", 120),
new XYChart.Data<String, Integer>("Sedan", 50),
new XYChart.Data<String, Integer>("Truck", 180),
new XYChart.Data<String, Integer>("Van", 20))));
Scene scene = new Scene(barChart, 350, 300);
scene.getStylesheets().add(ImageBarChartSample.class.getResource("ImageBarChart.css").toString());
getChildren().add(barChart);
}
public static void renderMeasuredProbabilities(int[] results) {
CategoryAxis xAxis = new CategoryAxis();
NumberAxis yAxis = new NumberAxis();
BarChart<String, Integer> barChart = new BarChart(xAxis, yAxis);
barChart.setData(getChartData(results));
barChart.setTitle("Measured probability distribution");
StackPane root = new StackPane();
root.getChildren().add(barChart);
if (myStage != null) {
Scene oldscene = myStage.getScene();
VBox box = (VBox)(oldscene.getRoot());
oldscene.setRoot(new StackPane());
box.getChildren().add(root);
Scene newScene = new Scene(box);
newScene.getStylesheets().add(Main.class.getResource("/styles.css").toExternalForm());
myStage.setScene(newScene);
} else {
Stage stage = new Stage();
stage.setScene(new Scene(root, 640, 480));
stage.show();
}
}
public Histogram(int n) {
super(new CategoryAxis(), new NumberAxis());
this.n = n;
this.getData().add(series);
List<Data<String,Number>> values = new ArrayList<>();
for (int i = 0; i < n; i++) {
values.add(new Data<>("" + i, 0));
}
histogramData = FXCollections.observableList(values);
series.setData(histogramData);
((NumberAxis)getYAxis()).setMinorTickVisible(false); // only show integers
/* reasonable layout */
this.setAnimated(false);
this.setLegendVisible(false);
((NumberAxis) getYAxis()).setTickUnit(1);
((NumberAxis) getYAxis()).setTickLabelFormatter(new IntegerAxisFormatter());
((NumberAxis) getYAxis()).setMinorTickCount(0);
}
private void displayIndex(Map<String, Double> resultIndex, String title, String header) {
BaseDialog dialog = new BaseDialog(title, header);
dialog.getDialogPane().setPrefSize(800, 600);
dialog.getDialogPane().getButtonTypes().addAll(new ButtonType(Configuration.getBundle().getString("ui.actions.stats.close"), ButtonBar.ButtonData.CANCEL_CLOSE));
// draw
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final LineChart<String,Number> lineChart = new LineChart<>(xAxis, yAxis);
lineChart.setTitle(title);
lineChart.setLegendVisible(false);
xAxis.setLabel(Configuration.getBundle().getString("ui.actions.stats.xaxis"));
yAxis.setLabel(Configuration.getBundle().getString("ui.actions.readable.yaxis"));
XYChart.Series<String, Number> series = new XYChart.Series();
for(Map.Entry<String, Double> st:resultIndex.entrySet()) {
series.getData().add(new XYChart.Data(st.getKey(), st.getValue()));
}
lineChart.getData().addAll(series);
dialog.getDialogPane().setContent(lineChart);
dialog.setResizable(true);
dialog.showAndWait();
}
private Parent createContent() {
StackPane root = new StackPane();
root.setPrefSize(800, 600);
BarChart<String, Number> chart = new BarChart<>(new CategoryAxis(), new NumberAxis());
XYChart.Series<String, Number> series = new XYChart.Series<>();
extractor.extract()
.stream()
.sorted((e1, e2) -> e2.getFrequency() - e1.getFrequency())
.limit(10)
.forEach(entry -> {
series.getData().add(new XYChart.Data<>(entry.getWord(), entry.getFrequency()));
});
chart.getData().add(series);
root.getChildren().add(chart);
return root;
}
private static void showResults(int[] results) {
CategoryAxis xAxis = new CategoryAxis();
NumberAxis yAxis = new NumberAxis();
BarChart<String, Integer> barChart = new BarChart(xAxis, yAxis);
barChart.setData(getChartData(results));
barChart.setTitle("Classic probability distribution");
StackPane root = new StackPane();
root.getChildren().add(barChart);
Stage stage = new Stage();
stage.setTitle("Two coins, classic case");
stage.setScene(new Scene(root, 640, 480));
stage.show();
}
@Override
public void start(Stage stage) throws Exception {
int results[] = TwoCoins.calculate(count);
CategoryAxis xAxis = new CategoryAxis();
NumberAxis yAxis = new NumberAxis();
BarChart<String, Integer> barChart = new BarChart(xAxis, yAxis);
barChart.setData(getChartData(results));
StackPane root = new StackPane();
root.getChildren().add(barChart);
stage.setScene(new Scene(root, 640, 480));
stage.show();
}
public AreaBarChart(@Nonnull ModularFeatureListRow row, AtomicDouble progress) {
XYChart.Series data = new XYChart.Series();
int i = 1;
int size = row.getFeatures().size();
for (Entry<RawDataFile, ModularFeature> entry : row.getFeatures().entrySet()) {
Property<Float> areaProperty = entry.getValue().get(AreaType.class);
data.getData().add(
new XYChart.Data("" + i, areaProperty.getValue() == null ? 0f : areaProperty.getValue()));
i++;
if (progress != null)
progress.addAndGet(1.0 / size);
}
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final BarChart<String, Number> bc = new BarChart<String, Number>(xAxis, yAxis);
bc.setLegendVisible(false);
bc.setMinHeight(100);
bc.setPrefHeight(100);
bc.setMaxHeight(100);
bc.setBarGap(3);
bc.setCategoryGap(3);
bc.setPrefWidth(150);
bc.getData().addAll(data);
this.getChildren().add(bc);
}
private LineChart<String, Number> createLineChart(String categoryLabel) {
// X-Axis category (not shown)
CategoryAxis xAxis = new CategoryAxis();
xAxis.setLabel(categoryLabel);
xAxis.setOpacity(0);
// Y-Axis (%)
NumberAxis yAxis = new NumberAxis(0, 100, 10);
yAxis.setLabel(DesignerLocalizer.instance().getLangString("cum.percent"));
yAxis.setSide(Side.RIGHT);
yAxis.setAutoRanging(false);
yAxis.setUpperBound(100.0d);
yAxis.setLowerBound(0.0d);
// create the line chart
LineChart<String, Number> chLineChart = new LineChart<>(xAxis, yAxis);
chLineChart.setTitle(chartTitle);
chLineChart.setLegendVisible(false);
chLineChart.setAnimated(false);
chLineChart.setCreateSymbols(true);
chLineChart.getData().add(lineChartSeries);
// plot the points
double total = totalCount.doubleValue();
Float cumulative = new Float(0f);
for (ParetoItem paretoItem : this.paretoItems) {
cumulative += new Float(paretoItem.getValue().floatValue() / total * 100.0f);
XYChart.Data<String, Number> point = new XYChart.Data<>(paretoItem.getCategory(), cumulative);
lineChartSeries.getData().add(point);
}
return chLineChart;
}
private void initializeLossChart() {
chLosses.setLegendVisible(false);
// fixed categories
List<String> categories = new ArrayList<>();
for (TimeLoss loss : TimeLoss.values()) {
categories.add(loss.toString());
}
CategoryAxis yAxis = (CategoryAxis) chLosses.getYAxis();
yAxis.setCategories(FXCollections.<String>observableArrayList(categories));
chLosses.getData().add(lossSeries);
}
protected BarChart<Number, String> createChart() {
final String[] years = {"2007", "2008", "2009"};
final CategoryAxis yAxis = new CategoryAxis();
final NumberAxis xAxis = new NumberAxis();
final BarChart<Number,String> bc = new BarChart<Number,String>(xAxis,yAxis);
// setup chart
bc.setTitle("Horizontal Bar Chart Example");
yAxis.setLabel("Year");
yAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(years)));
xAxis.setLabel("Price");
// add starting data
XYChart.Series<Number,String> series1 = new XYChart.Series<Number,String>();
series1.setName("Data Series 1");
XYChart.Series<Number,String> series2 = new XYChart.Series<Number,String>();
series2.setName("Data Series 2");
XYChart.Series<Number,String> series3 = new XYChart.Series<Number,String>();
series3.setName("Data Series 3");
series1.getData().add(new XYChart.Data<Number,String>(567, years[0]));
series1.getData().add(new XYChart.Data<Number,String>(1292, years[1]));
series1.getData().add(new XYChart.Data<Number,String>(2180, years[2]));
series2.getData().add(new XYChart.Data<Number,String>(956, years[0]));
series2.getData().add(new XYChart.Data<Number,String>(1665, years[1]));
series2.getData().add(new XYChart.Data<Number,String>(2450, years[2]));
series3.getData().add(new XYChart.Data<Number,String>(800, years[0]));
series3.getData().add(new XYChart.Data<Number,String>(1000, years[1]));
series3.getData().add(new XYChart.Data<Number,String>(2800, years[2]));
bc.getData().add(series1);
bc.getData().add(series2);
bc.getData().add(series3);
return bc;
}
protected BarChart<String, Number> createChart() {
final String[] years = {"2007", "2008", "2009"};
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,"$",null));
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
// setup chart
bc.setTitle("Advanced Bar Chart");
xAxis.setLabel("Year");
xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(years)));
yAxis.setLabel("Price");
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
XYChart.Series<String,Number> series2 = new XYChart.Series<String,Number>();
series2.setName("Data Series 2");
XYChart.Series<String,Number> series3 = new XYChart.Series<String,Number>();
series3.setName("Data Series 3");
// create sample data
series1.getData().add(new XYChart.Data<String,Number>(years[0], 567));
series1.getData().add(new XYChart.Data<String,Number>(years[1], 1292));
series1.getData().add(new XYChart.Data<String,Number>(years[2], 2180));
series2.getData().add(new XYChart.Data<String,Number>(years[0], 956));
series2.getData().add(new XYChart.Data<String,Number>(years[1], 1665));
series2.getData().add(new XYChart.Data<String,Number>(years[2], 2450));
series3.getData().add(new XYChart.Data<String,Number>(years[0], 800));
series3.getData().add(new XYChart.Data<String,Number>(years[1], 1000));
series3.getData().add(new XYChart.Data<String,Number>(years[2], 2800));
bc.getData().add(series1);
bc.getData().add(series2);
bc.getData().add(series3);
return bc;
}
protected BarChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis(0,50,10);
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
bc.setId("barAudioDemo");
bc.setLegendVisible(false);
bc.setAnimated(false);
bc.setBarGap(0);
bc.setCategoryGap(1);
bc.setVerticalGridLinesVisible(false);
// setup chart
bc.setTitle("Live Audio Spectrum Data");
xAxis.setLabel("Frequency Bands");
yAxis.setLabel("Magnitudes");
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,null,"dB"));
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
//noinspection unchecked
series1Data = new XYChart.Data[128];
String[] categories = new String[128];
for (int i=0; i<series1Data.length; i++) {
categories[i] = Integer.toString(i+1);
series1Data[i] = new XYChart.Data<String,Number>(categories[i],50);
series1.getData().add(series1Data[i]);
}
bc.getData().add(series1);
return bc;
}
private BarChart createBarChart() {
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(tableModel.getColumnNames()));
xAxis.setLabel("Year");
double tickUnit = tableModel.getTickUnit();
NumberAxis yAxis = new NumberAxis();
yAxis.setTickUnit(tickUnit);
yAxis.setLabel("Units Sold");
final BarChart chart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
Platform.runLater(new Runnable() {
public void run() {
XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) chart.getData().get(row);
BarChart.Data data = s.getData().get(column);
data.setYValue(value);
}
});
}
}
});
return chart;
}
protected BarChart<Number, String> createChart() {
final String[] years = {"2007", "2008", "2009"};
final CategoryAxis yAxis = new CategoryAxis();
final NumberAxis xAxis = new NumberAxis();
final BarChart<Number,String> bc = new BarChart<Number,String>(xAxis,yAxis);
// setup chart
bc.setTitle("Horizontal Bar Chart Example");
yAxis.setLabel("Year");
yAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(years)));
xAxis.setLabel("Price");
// add starting data
XYChart.Series<Number,String> series1 = new XYChart.Series<Number,String>();
series1.setName("Data Series 1");
XYChart.Series<Number,String> series2 = new XYChart.Series<Number,String>();
series2.setName("Data Series 2");
XYChart.Series<Number,String> series3 = new XYChart.Series<Number,String>();
series3.setName("Data Series 3");
series1.getData().add(new XYChart.Data<Number,String>(567, years[0]));
series1.getData().add(new XYChart.Data<Number,String>(1292, years[1]));
series1.getData().add(new XYChart.Data<Number,String>(2180, years[2]));
series2.getData().add(new XYChart.Data<Number,String>(956, years[0]));
series2.getData().add(new XYChart.Data<Number,String>(1665, years[1]));
series2.getData().add(new XYChart.Data<Number,String>(2450, years[2]));
series3.getData().add(new XYChart.Data<Number,String>(800, years[0]));
series3.getData().add(new XYChart.Data<Number,String>(1000, years[1]));
series3.getData().add(new XYChart.Data<Number,String>(2800, years[2]));
bc.getData().add(series1);
bc.getData().add(series2);
bc.getData().add(series3);
return bc;
}
protected BarChart<String, Number> createChart() {
final String[] years = {"2007", "2008", "2009"};
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,"$",null));
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
// setup chart
bc.setTitle("Advanced Bar Chart");
xAxis.setLabel("Year");
xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(years)));
yAxis.setLabel("Price");
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
XYChart.Series<String,Number> series2 = new XYChart.Series<String,Number>();
series2.setName("Data Series 2");
XYChart.Series<String,Number> series3 = new XYChart.Series<String,Number>();
series3.setName("Data Series 3");
// create sample data
series1.getData().add(new XYChart.Data<String,Number>(years[0], 567));
series1.getData().add(new XYChart.Data<String,Number>(years[1], 1292));
series1.getData().add(new XYChart.Data<String,Number>(years[2], 2180));
series2.getData().add(new XYChart.Data<String,Number>(years[0], 956));
series2.getData().add(new XYChart.Data<String,Number>(years[1], 1665));
series2.getData().add(new XYChart.Data<String,Number>(years[2], 2450));
series3.getData().add(new XYChart.Data<String,Number>(years[0], 800));
series3.getData().add(new XYChart.Data<String,Number>(years[1], 1000));
series3.getData().add(new XYChart.Data<String,Number>(years[2], 2800));
bc.getData().add(series1);
bc.getData().add(series2);
bc.getData().add(series3);
return bc;
}
protected BarChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis(0,50,10);
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
bc.setId("barAudioDemo");
bc.setLegendVisible(false);
bc.setAnimated(false);
bc.setBarGap(0);
bc.setCategoryGap(1);
bc.setVerticalGridLinesVisible(false);
// setup chart
bc.setTitle("Live Audio Spectrum Data");
xAxis.setLabel("Frequency Bands");
yAxis.setLabel("Magnitudes");
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,null,"dB"));
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
//noinspection unchecked
series1Data = new XYChart.Data[128];
String[] categories = new String[128];
for (int i=0; i<series1Data.length; i++) {
categories[i] = Integer.toString(i+1);
series1Data[i] = new XYChart.Data<String,Number>(categories[i],50);
series1.getData().add(series1Data[i]);
}
bc.getData().add(series1);
return bc;
}
private BarChart createBarChart() {
CategoryAxis xAxis = new CategoryAxis();
xAxis.setCategories(FXCollections.<String>observableArrayList(tableModel.getColumnNames()));
xAxis.setLabel("Year");
double tickUnit = tableModel.getTickUnit();
NumberAxis yAxis = new NumberAxis();
yAxis.setTickUnit(tickUnit);
yAxis.setLabel("Units Sold");
final BarChart chart = new BarChart(xAxis, yAxis, tableModel.getBarChartData());
tableModel.addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
if (e.getType() == TableModelEvent.UPDATE) {
final int row = e.getFirstRow();
final int column = e.getColumn();
final Object value = ((SampleTableModel) e.getSource()).getValueAt(row, column);
Platform.runLater(new Runnable() {
public void run() {
XYChart.Series<String, Number> s = (XYChart.Series<String, Number>) chart.getData().get(row);
BarChart.Data data = s.getData().get(column);
data.setYValue(value);
}
});
}
}
});
return chart;
}
protected BarChart<String, Number> createChart() {
final String[] years = {"2007", "2008", "2009"};
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,"$",null));
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
// setup chart
bc.setTitle("Advanced Bar Chart");
xAxis.setLabel("Year");
xAxis.setCategories(FXCollections.<String>observableArrayList(Arrays.asList(years)));
yAxis.setLabel("Price");
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
XYChart.Series<String,Number> series2 = new XYChart.Series<String,Number>();
series2.setName("Data Series 2");
XYChart.Series<String,Number> series3 = new XYChart.Series<String,Number>();
series3.setName("Data Series 3");
// create sample data
series1.getData().add(new XYChart.Data<String,Number>(years[0], 567));
series1.getData().add(new XYChart.Data<String,Number>(years[1], 1292));
series1.getData().add(new XYChart.Data<String,Number>(years[2], 2180));
series2.getData().add(new XYChart.Data<String,Number>(years[0], 956));
series2.getData().add(new XYChart.Data<String,Number>(years[1], 1665));
series2.getData().add(new XYChart.Data<String,Number>(years[2], 2450));
series3.getData().add(new XYChart.Data<String,Number>(years[0], 800));
series3.getData().add(new XYChart.Data<String,Number>(years[1], 1000));
series3.getData().add(new XYChart.Data<String,Number>(years[2], 2800));
bc.getData().add(series1);
bc.getData().add(series2);
bc.getData().add(series3);
return bc;
}
protected BarChart<String, Number> createChart() {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis(0,50,10);
final BarChart<String,Number> bc = new BarChart<String,Number>(xAxis,yAxis);
bc.setId("barAudioDemo");
bc.setLegendVisible(false);
bc.setAnimated(false);
bc.setBarGap(0);
bc.setCategoryGap(1);
bc.setVerticalGridLinesVisible(false);
// setup chart
bc.setTitle("Live Audio Spectrum Data");
xAxis.setLabel("Frequency Bands");
yAxis.setLabel("Magnitudes");
yAxis.setTickLabelFormatter(new NumberAxis.DefaultFormatter(yAxis,null,"dB"));
// add starting data
XYChart.Series<String,Number> series1 = new XYChart.Series<String,Number>();
series1.setName("Data Series 1");
//noinspection unchecked
series1Data = new XYChart.Data[128];
String[] categories = new String[128];
for (int i=0; i<series1Data.length; i++) {
categories[i] = Integer.toString(i+1);
series1Data[i] = new XYChart.Data<String,Number>(categories[i],50);
series1.getData().add(series1Data[i]);
}
bc.getData().add(series1);
return bc;
}
/**
* Generates the history chart with the summary of test executions.
*
* @param dataSet input data-set for the chart
* @param historyChartFileName file name of the history graph
*/
public void generateResultHistoryChart(Map<String, BuildExecutionSummary> dataSet, String historyChartFileName) {
final CategoryAxis xAxis = new CategoryAxis();
final NumberAxis yAxis = new NumberAxis();
final StackedBarChart<String, Number> stackedBarChart = new StackedBarChart<>(xAxis, yAxis);
// This represents the series of values e.g: Failed, skipped, Passed
final XYChart.Series<String, Number>[] seriesSet = new XYChart.Series[]{new XYChart.Series<>(),
new XYChart.Series<>(), new XYChart.Series<>()};
xAxis.setCategories(FXCollections.<String>observableArrayList(dataSet.keySet()));
// Disabling animation
xAxis.setAnimated(false);
yAxis.setAnimated(false);
stackedBarChart.setAnimated(false);
// Set Axis Names
xAxis.setLabel("Build date");
yAxis.setLabel("Number of infrastructure combinations");
// Setting series names
seriesSet[0].setName("Test failures");
seriesSet[1].setName("Deployment errors");
seriesSet[2].setName("Test passed");
// Setting space between the bars
stackedBarChart.setCategoryGap(50);
//Setting the title of the bar chart.
stackedBarChart.setTitle("Test Run History");
dataSet.forEach((key, summary) -> {
seriesSet[0].getData().add(new XYChart.Data<>(key, summary.getFailedTestPlans()));
seriesSet[1].getData().add(new XYChart.Data<>(key, summary.getSkippedTestPlans()));
seriesSet[2].getData().add(new XYChart.Data<>(key, summary.getPassedTestPlans()));
});
// Adding the series to the chart
for (XYChart.Series series : seriesSet) {
stackedBarChart.getData().add(series);
}
genChart(stackedBarChart, 800, 800, historyChartFileName, "styles/summary.css");
}
public LineChart<String, Number> createChart(LabelledRadiusPane pane) {
CategoryAxis xAxis = new CategoryAxis();
NumberAxis yAxis = new NumberAxis();
chart = new LineChart<>(xAxis, yAxis);
chart.setTitle("Tweet Trend Analysis");
chart.setCreateSymbols(false);
chart.setLegendVisible(false);
xAxis.setLabel("Time of Tweet");
yAxis.setUpperBound(1.0);
yAxis.setLowerBound(0.0);
yAxis.setLabel("Anomaly\n Score");
yAxis.setForceZeroInRange(true);
series = new XYChart.Series<>();
series.setName("Tweet Data");
chart.getData().add(series);
chartSeriesProperty.set(series);
Node line = series.getNode().lookup(".chart-series-line");
line.setStyle("-fx-stroke: rgb(20, 164, 220)");
chart.setPrefWidth(1200);
chart.setPrefHeight(275);
chart.setLayoutY(pane.labelHeightProperty().get() + 10);
return chart;
}