Inspired by the excellent BeanShell example, here is the same thing in Groovy (but displaying in a Swing window rather than writing to a file):
//require(groupId:'jfree', artifactId:'jfreechart', version:'1.0.5') //require(groupId:'jfree', artifactId:'jcommon', version:'1.0.9') import org.jfree.chart.ChartFactory import org.jfree.chart.ChartPanel import org.jfree.data.general.DefaultPieDataset import groovy.swing.SwingBuilder import java.awt.* import javax.swing.WindowConstants as WC def piedataset = new DefaultPieDataset(); piedataset.setValue "Apr", 10 piedataset.setValue "May", 30 piedataset.setValue "June", 40 def options = [true, true, true] def chart = ChartFactory.createPieChart("Pie Chart Sample", piedataset, *options) chart.backgroundPaint = Color.white def swing = new SwingBuilder() def frame = swing.frame(title:'Groovy PieChart', defaultCloseOperation:WC.EXIT_ON_CLOSE) { panel(id:'canvas') { widget(new ChartPanel(chart)) } } frame.pack() frame.show()
Here is the result:

Or if you prefer Line Charts:
//require(groupId:'jfree', artifactId:'jfreechart', version:'1.0.5') //require(groupId:'jfree', artifactId:'jcommon', version:'1.0.9') import org.jfree.chart.ChartFactory import org.jfree.chart.ChartPanel import org.jfree.data.category.DefaultCategoryDataset import org.jfree.chart.plot.PlotOrientation as Orientation import groovy.swing.SwingBuilder import javax.swing.WindowConstants as WC def dataset = new DefaultCategoryDataset() dataset.addValue 150, "no.1", "Jan" dataset.addValue 210, "no.1", "Feb" dataset.addValue 390, "no.1", "Mar" dataset.addValue 300, "no.2", "Jan" dataset.addValue 400, "no.2", "Feb" dataset.addValue 200, "no.2", "Mar" def labels = ["Bugs", "Month", "Count"] def options = [true, true, true] def chart = ChartFactory.createLineChart(*labels, dataset, Orientation.VERTICAL, *options) def swing = new SwingBuilder() def frame = swing.frame(title:'Groovy LineChart', defaultCloseOperation:WC.EXIT_ON_CLOSE) { panel(id:'canvas') { widget(new ChartPanel(chart)) } } frame.pack() frame.show()
And the result looks like:

Additionally, you might have a look at the GroovyChart library which provides a dedicated builder interface for building charts.






