By Alvin Alexander. Last updated: June 28, 2019
Here’s an example of how to create an X/Y graph in Scala using JFreeChart and Scala Swing. It’s worth mentioning that the “neurosky” reference has to do with Neurosky MindWave headset, and the JFreeChart libraries are under the org.jfree package:
package com.alvinalexander.neurosky import org.jfree.chart.{ChartFactory, ChartPanel} import org.jfree.data.category.DefaultCategoryDataset import org.jfree.chart.plot.PlotOrientation import scala.swing._ import java.awt.BorderLayout object LineChartExample extends SimpleSwingApplication { val ATTENTION = "Attention" val MEDITATION = "Meditation" val data = new DefaultCategoryDataset data.addValue(100.0, ATTENTION, 1) data.addValue(200.0, ATTENTION, 2) data.addValue(300.0, ATTENTION, 3) data.addValue(400.0, ATTENTION, 4) data.addValue(500.0, ATTENTION, 5) data.addValue(500.0, MEDITATION, 1) data.addValue(400.0, MEDITATION, 2) data.addValue(300.0, MEDITATION, 3) data.addValue(200.0, MEDITATION, 4) data.addValue(100.0, MEDITATION, 5) val chart = ChartFactory.createLineChart( "Brainwaves", "Time", "Value", data, PlotOrientation.VERTICAL, true, true, true) def top = new MainFrame { title = "Brainwave Plotter" peer.setContentPane(new ChartPanel(chart)) peer.setLocationRelativeTo(null) } }
That code results in this chart:
Of course you need the proper libraries and all that good stuff, but that shows how easy it is to write the code to create a graph with these tools. I hope to be using code like this to chart my brainwaves soon, and thought I’d share this code while I’m trying to get to my destination.
Reporting live from Boulder, Colorado,
Al