use of com.vaadin.addon.charts.model.PlotOptionsColumn in project charts by vaadin.
the class ToggledSeriesVisibility method getChart.
@Override
protected Component getChart() {
chart = new Chart(ChartType.COLUMN);
Configuration conf = chart.getConfiguration();
conf.setTitle("Monthly Average Rainfall");
conf.setSubTitle("Source: WorldClimate.com");
XAxis x = new XAxis();
x.setCategories("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
conf.addxAxis(x);
YAxis y = new YAxis();
y.setMin(0);
y.setTitle("Rainfall (mm)");
conf.addyAxis(y);
Legend legend = new Legend();
legend.setLayout(LayoutDirection.VERTICAL);
legend.setBackgroundColor(new SolidColor("#FFFFFF"));
legend.setAlign(HorizontalAlign.LEFT);
legend.setVerticalAlign(VerticalAlign.TOP);
legend.setX(100);
legend.setY(70);
legend.setFloating(true);
legend.setShadow(true);
conf.setLegend(legend);
Tooltip tooltip = new Tooltip();
tooltip.setFormatter("this.x +': '+ this.y +' mm'");
conf.setTooltip(tooltip);
PlotOptionsColumn plot = new PlotOptionsColumn();
plot.setPointPadding(0.2);
plot.setBorderWidth(0);
conf.addSeries(tokyo);
conf.addSeries(newYork);
conf.addSeries(berlin);
conf.addSeries(london);
chart.addLegendItemClickListener(new LegendItemClickListener() {
@Override
public void onClick(LegendItemClickEvent event) {
/*
* Visibility of the series is also toggled from legend clicks
* by default. Still developers might wish to override this
* behavior if the visibility is also controlled by other
* components like here or if e.g. multiple charts are bound
* together (hiding series in one chart should hide related data
* in other chart as well).
*/
ListSeries series = (ListSeries) event.getSeries();
/*
* Toggle checked in option group. As a side effect (via value
* change listener, see setup method) the visibility will change
* in the chart as well.
*/
if (series.isVisible()) {
checkBoxGroup.deselect(series);
} else {
checkBoxGroup.select(series);
}
}
});
chart.drawChart(conf);
return chart;
}
use of com.vaadin.addon.charts.model.PlotOptionsColumn in project charts by vaadin.
the class MultipleAxes method getChart.
@Override
protected Component getChart() {
Chart chart = new Chart();
Configuration conf = chart.getConfiguration();
Color[] colors = getThemeColors();
conf.getChart().setZoomType(ZoomType.XY);
conf.setTitle("Average Monthly Weather Data for Tokyo");
conf.setSubTitle("Source: WorldClimate.com");
XAxis x = new XAxis();
x.setCategories("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
conf.addxAxis(x);
YAxis y1 = new YAxis();
Labels labels = new Labels();
labels.setFormatter("return this.value +'°C'");
Style style = new Style();
style.setColor(colors[1]);
labels.setStyle(style);
y1.setLabels(labels);
y1.setOpposite(true);
AxisTitle title = new AxisTitle("Temperature");
style = new Style();
style.setColor(colors[1]);
y1.setTitle(title);
conf.addyAxis(y1);
YAxis y2 = new YAxis();
y2.setGridLineWidth(0);
title = new AxisTitle("Rainfall");
style = new Style();
style.setColor(colors[0]);
y2.setTitle(title);
labels = new Labels();
labels.setFormatter("this.value +' mm'");
style = new Style();
style.setColor(colors[0]);
labels.setStyle(style);
y2.setLabels(labels);
conf.addyAxis(y2);
YAxis y3 = new YAxis();
y3.setGridLineWidth(0);
conf.addyAxis(y3);
title = new AxisTitle("Sea-Level Pressure");
style = new Style();
style.setColor(colors[2]);
y3.setTitle(title);
labels = new Labels();
labels.setFormatter("this.value +' mb'");
style = new Style();
style.setColor(colors[2]);
labels.setStyle(style);
y3.setLabels(labels);
y3.setOpposite(true);
chart.drawChart(conf);
Tooltip tooltip = new Tooltip();
tooltip.setFormatter("function() { " + "var unit = { 'Rainfall': 'mm', 'Temperature': '°C', 'Sea-Level Pressure': 'mb' }[this.series.name];" + "return ''+ this.x +': '+ this.y +' '+ unit; }");
conf.setTooltip(tooltip);
Legend legend = new Legend();
legend.setLayout(LayoutDirection.VERTICAL);
legend.setAlign(HorizontalAlign.LEFT);
legend.setX(120);
legend.setVerticalAlign(VerticalAlign.TOP);
legend.setY(80);
legend.setFloating(true);
conf.setLegend(legend);
DataSeries series = new DataSeries();
PlotOptionsColumn plotOptionsColumn = new PlotOptionsColumn();
plotOptionsColumn.setColor(colors[0]);
series.setPlotOptions(plotOptionsColumn);
series.setName("Rainfall");
series.setyAxis(1);
series.setData(49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4);
conf.addSeries(series);
series = new DataSeries();
PlotOptionsSpline plotOptionsSpline = new PlotOptionsSpline();
plotOptionsSpline.setColor(colors[2]);
series.setPlotOptions(plotOptionsSpline);
series.setName("Sea-Level Pressure");
series.setyAxis(2);
series.setData(1016, 1016, 1015.9, 1015.5, 1012.3, 1009.5, 1009.6, 1010.2, 1013.1, 1016.9, 1018.2, 1016.7);
conf.addSeries(series);
series = new DataSeries();
plotOptionsSpline = new PlotOptionsSpline();
plotOptionsSpline.setColor(colors[1]);
series.setPlotOptions(plotOptionsSpline);
series.setName("Temperature");
series.setData(7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6);
conf.addSeries(series);
chart.drawChart(conf);
return chart;
}
use of com.vaadin.addon.charts.model.PlotOptionsColumn in project charts by vaadin.
the class ChartWithExternalContainer method createChart2.
public static Chart createChart2(AbstractSeries container) {
final Chart chart = new Chart();
final Configuration configuration = chart.getConfiguration();
configuration.getChart().setType(ChartType.COLUMN);
configuration.getTitle().setText("Order item totals");
configuration.getLegend().setEnabled(false);
YAxis ax = new YAxis();
ax.setTitle("");
configuration.addyAxis(ax);
PlotOptionsColumn plotOptions = new PlotOptionsColumn();
configuration.setPlotOptions(plotOptions);
configuration.setSeries(container);
chart.drawChart(configuration);
return chart;
}
use of com.vaadin.addon.charts.model.PlotOptionsColumn in project charts by vaadin.
the class BeansFromDataProvider method getChart.
@Override
protected Component getChart() {
ListDataProvider<ClaimsReportItem> dp = DataProvider.ofCollection(getMockData());
// Create ChartDataSeries
DataProviderSeries<ClaimsReportItem> series = new DataProviderSeries<>(dp);
series.setName("Claims");
series.setPlotOptions(new PlotOptionsColumn());
series.setY(ClaimsReportItem::getAmount);
series.setPointName(ClaimsReportItem::getType);
// Create chart & configuration
Chart chart = new Chart();
Configuration configuration = chart.getConfiguration();
configuration.getTitle().setText("Claim Processing");
// Create Y Axis
YAxis y = new YAxis();
y.setTitle("Amount");
configuration.addyAxis(y);
// use category names from beans on x axis instead of index
configuration.getxAxis().setType(AxisType.CATEGORY);
configuration.setSeries(series);
chart.setSizeFull();
return chart;
}
use of com.vaadin.addon.charts.model.PlotOptionsColumn in project charts by vaadin.
the class ChartWithExternalDataProvider method createChartDataSeries2.
private DataProviderSeries<Order> createChartDataSeries2(DataProvider<Order, ?> dataProvider) {
DataProviderSeries<Order> chartDS = new DataProviderSeries<>(dataProvider);
chartDS.setName("Order item prices");
chartDS.setPlotOptions(new PlotOptionsColumn());
chartDS.setY(order -> order.getItemPrice().intValue());
chartDS.setPointName(Order::getDescription);
return chartDS;
}
Aggregations