因为要进行数据分析,开发原型的过程中最好能绘图,上网查了一下,Spark或scala中比较常用的绘图工具是Breeze-Viz,于是参考博文上手Breeze-Viz。
Breeze-Viz介绍
breeze-viz是git开源项目scalanlp/breeze的一部分,它能在java/scala语言环境绘制x-y点图,统计图,二维矩阵灰度图。breeze项目现在用途很广泛,Spark MLlib很多机器学习算法建立在breeze之上。breeze中最主要的是它的breeze数学库,包括向量、矩阵等基本数据结构,各种数学函数、分布,数学常用算法等等。
Breeze-Viz项目搭建
Breeze-Viz搭建只要下载对应版本的jar包和依赖项就可以了。我用的scala版本是2.11,对应版本的Breeze-Viz jar包下载地址。页面的下方有所需依赖项和下载链接。
例程
顾名思义,breeze项目可能在NLP领域中用得比较多。以下代码来源于官方说明和例程:
import breeze.linalg.{linspace, DenseVector, DenseMatrix}
import breeze.plot._
object plot_test{
def main(args: Array[String]): Unit = {
val f = Figure()
val p = f.subplot(0)
val x = linspace(0.0,1.0)
p += plot(x, x :^ 2.0)
p += plot(x, x :^ 3.0, '.')
p.xlabel = "x axis"
p.ylabel = "y axis"
f.saveas("lines.png") // save current figure as a .png, eps and pdf also supported
val p2 = f.subplot(2,1,1)
val g = breeze.stats.distributions.Gaussian(0,1)
p2 += hist(g.sample(100000),100)
p2.title = "A normal distribution"
f.saveas("subplots.png")
val f2 = Figure()
f2.subplot(0) += image(DenseMatrix.rand(200,200))
f2.saveas("image.png")
}
}
subplots.png
image.png
看了这个小例程,下面就可以开始自己绘图啦!
网友评论