Spark之路 --- Scala用JFreeChart画图表实例

JFreeChart介绍

JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计。JFreeChart可生成饼图(pie charts)、柱状图(bar charts)、散点图(scatter plots)、时序图(time series)、甘特图(Gantt charts)等等多种图表,并且可以产生PNG和JPEG格式的输出,还可以与PDF和EXCEL关联。

JFreeChart及与其相关的依赖包下载

因为公司网络不能连能SBT或Maven相关的服务器,所以不能使用构建工具来构建一个Scala项目,只能把所有的相关Jar包下载到本地再引用到项目中。

1.在Maven官方仓库搜索JFreeChart并选择相应的版本Jar下载 传送门

2.在当前页面中找到所有相关的依赖并下载相应的Jar

JFreeChart使用

1.新建一个名为ScalaCharting的新Scala项目

2.把刚刚下载的那几个Jar包添加引用到新项目中

当前项目点击鼠标右键Properties->Java Build Path->Libraries->Add External JARs...

 

 

3.新建一个Scala类:Charting 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import org.jfree.chart.ChartPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.DefaultCategoryDataset;
 
object RunningCharting {
  def main(args: Array[String]) {
    val chart = new Charting("Testing Yield",
      "Yield of Testing vs Hours")
    chart.pack();
    RefineryUtilities.centerFrameOnScreen(chart);
    chart.setVisible(true);
  }
}
 
class Charting(applicationTitle: String) extends ApplicationFrame(applicationTitle) {
   
  def this(applicationTitle: String, chartTitle: String) {
    this(applicationTitle);
     
    val lineChart = ChartFactory.createLineChart(chartTitle,
      "Hours", "Yield of Testing", createDataset(),
      PlotOrientation.VERTICAL, true, true, false)
 
    val chartPanel = new ChartPanel(lineChart)
    chartPanel.setPreferredSize(new java.awt.Dimension(560, 367))
    setContentPane(chartPanel)
  }
 
  def createDataset(): DefaultCategoryDataset = {
    val dataset = new DefaultCategoryDataset();
    dataset.addValue(81, "Yield", "10");
    dataset.addValue(90, "Yield", "11");
    dataset.addValue(78, "Yield", "12");
    dataset.addValue(85, "Yield", "13");
    dataset.addValue(82, "Yield", "14");
    dataset.addValue(80, "Yield", "15");
    return dataset;
  }
}

4.运行效果

 

  

posted @   keitsi  阅读(2145)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示