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.运行效果
Keep it simple!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战