JFreeChart (BarChart, LineChart, PieChart) in Vaadin Flow
// Dependencies
<dependency>
<groupId>org.jfree</groupId>
<artifactId>jfreechart</artifactId>
<version>1.0.19</version>
</dependency>
<dependency>
<groupId>com.faendir.vaadin</groupId>
<artifactId>jfreechart-flow</artifactId>
<version>1.1.6</version>
</dependency>
// Source Code
public class JFreeChartComponent extends VerticalLayout {
private JFreeChart jFreeChart;
private JFreeChartWrapper jFreeChartWrapper;
public JFreeChartComponent() {
this.setSizeFull();
this.jFreeChartWrapper = new JFreeChartWrapper(getPieChart());
this.add(jFreeChartWrapper);
}
private JFreeChart getPieChart() {
DefaultPieDataset dataset = new DefaultPieDataset( );
dataset.setValue( "IPhone 5s" , new Double( 20 ) );
dataset.setValue( "SamSung Grand" , new Double( 20 ) );
dataset.setValue( "MotoG" , new Double( 40 ) );
dataset.setValue( "Nokia Lumia" , new Double( 10 ) );
JFreeChart chart = ChartFactory.createPieChart(
"Mobile Sales", // chart title
dataset, // data
true, // include legend
true,
false);
return chart;
}
private JFreeChart getMultiBarChart() {
final String kia = "KIA";
final String tata = "TATA";
final String fiat = "FIAT";
final String audi = "AUDI";
final String ford = "FORD";
final String speed = "Speed";
final String millage = "Millage";
final String userRating = "User Rating";
final String safety = "Safety";
final DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
dataSet.addValue(1.0, fiat, speed);
dataSet.addValue(3.0, fiat, userRating);
dataSet.addValue(5.0, fiat, millage);
dataSet.addValue(5.0, fiat, safety);
dataSet.addValue(5.0, audi, speed);
dataSet.addValue(6.0, audi, userRating);
dataSet.addValue(10.0, audi, millage);
dataSet.addValue(4.0, audi, safety);
dataSet.addValue(4.0, ford, speed);
dataSet.addValue(2.0, ford, userRating);
dataSet.addValue(3.0, ford, millage);
dataSet.addValue(6.0, ford, safety);
dataSet.addValue(1.0, kia, speed);
dataSet.addValue(3.0, kia, userRating);
dataSet.addValue(5.0, kia, millage);
dataSet.addValue(5.0, kia, safety);
dataSet.addValue(5.0, tata, speed);
dataSet.addValue(6.0, tata, userRating);
dataSet.addValue(10.0, tata, millage);
dataSet.addValue(4.0, tata, safety);
JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart",
"Category",
"Score",
dataSet,
PlotOrientation.VERTICAL,
true, true, false);
return chart;
}
private JFreeChart getBarChart() {
final String kia = "KIA";
final DefaultCategoryDataset dataSet = new DefaultCategoryDataset();
int k = 1;
while (k <= 31) {
int value = k * 5;
if (k % 2 == 0)
value = k * 10;
dataSet.addValue(value, kia, String.valueOf(k));
k++;
}
JFreeChart chart = ChartFactory.createBarChart(
"Bar Chart",
"Oct 2022",
"Score",
dataSet,
PlotOrientation.VERTICAL,
true, true, false);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setMouseWheelEnabled(true);
chartPanel.setDomainZoomable(true);
chartPanel.setRangeZoomable(true);
chartPanel.setZoomOutFactor(1.0);
chartPanel.setZoomInFactor(1.0);
return chart;
// return chartPanel;
}
private JFreeChart getLineChart() {
DefaultCategoryDataset dataSet = new DefaultCategoryDataset( );
dataSet.addValue( 15 , "schools" , "1970" );
dataSet.addValue( 30 , "schools" , "1980" );
dataSet.addValue( 60 , "schools" , "1990" );
dataSet.addValue( 120 , "schools" , "2000" );
dataSet.addValue( 240 , "schools" , "2010" );
dataSet.addValue( 300 , "schools" , "2014" );
JFreeChart lineChart = ChartFactory.createLineChart(
"Line Chart",
"Years","Number of Schools",
dataSet,
PlotOrientation.VERTICAL,
true,true,false);
return lineChart;
}
private JFreeChart getXYLineChart() {
XYSeriesCollection newDataSet = new XYSeriesCollection();
XYSeries series1 = new XYSeries("Object 1");
XYSeries series2 = new XYSeries("Object 2");
XYSeries series3 = new XYSeries("Object 3");
series1.add(1.0, 2.0);
series1.add(2.0, 3.0);
series1.add(3.0, 2.5);
series1.add(3.5, 2.8);
series1.add(4.2, 6.0);
series2.add(2.0, 1.0);
series2.add(2.5, 2.4);
series2.add(3.2, 1.2);
series2.add(3.9, 2.8);
series2.add(4.6, 3.0);
series3.add(1.2, 4.0);
series3.add(2.5, 4.4);
series3.add(3.8, 4.2);
series3.add(4.3, 3.8);
series3.add(4.5, 4.0);
newDataSet.addSeries(series1);
newDataSet.addSeries(series2);
newDataSet.addSeries(series3);
JFreeChart chart = ChartFactory.createXYLineChart("XY Line Chart", "X Axis", "Y Axis", newDataSet);
return chart;
}
}
Comments
Post a Comment