zoukankan      html  css  js  c++  java
  • 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 

    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.运行效果

     

      

  • 相关阅读:
    微信小程序与用户交互
    洛谷P2066 机器分配
    巴蜀3540 -- 【Violet 6 最终话】蒲公英
    POJ1984 Navigation Nightmare
    洛谷P1387 最大正方形
    洛谷P2679 子串
    洛谷P2057 善意的投票
    Bzoj 2726 SDOI 任务安排
    POJ2761 Feed the dogs
    P1272 重建道路
  • 原文地址:https://www.cnblogs.com/keitsi/p/spark_scala_charting_demo.html
Copyright © 2011-2022 走看看