目录
- plot--绘图库
- 原文地址
- 简介
- 快速使用
plot--绘图库
原文地址
https://darjun.github.io/2020/04/12/godailylib/plot/
简介
本文介绍 Go 语言的一个非常强大、好用的绘图库——plot
。plot
内置了很多常用的组件,基本满足日常需求。同时,它也提供了定制化的接口,可以实现我们的个性化需求。plot
主要用于将数据可视化,便于我们观察、比较。
快速使用
先安装:
$ go get gonum.org/v1/plot/
后使用:package mainimport ("log""math/rand""gonum.org/v1/plot""gonum.org/v1/plot/plotter""gonum.org/v1/plot/plotutil""gonum.org/v1/plot/vg"
)func main() {rand.Seed(int64(0))p, err := plot.New()if err != nil {log.Fatal(err)}p.Title.Text = "Get Started"p.X.Label.Text = "X"p.Y.Label.Text = "Y"err = plotutil.AddLinePoints(p,"First", randomPoints(15),"Second", randomPoints(15),"Third", randomPoints(15))if err != nil {log.Fatal(err)}if err = p.Save(4*vg.Inch, 4*vg.Inch, "points.png"); err != nil {log.Fatal(err)}
}func randomPoints(n int) plotter.XYs {points := make(plotter.XYs, n)for i := range points {if i == 0 {points[i].X = rand.Float64()} else {points[i].X = points[i-1].X + rand.Float64()}points[i].Y = points[i].X + 10 * rand.Float64()}return points
}
程序运行输出points.png
图片文件:
plot
的使用比较直观。首先,调用plot.New()
创建一个“画布”,画布结构如下:
// Plot is the basic type representing a plot.
type Plot struct {Title struct {Text stringPadding vg.Lengthdraw.TextStyle}BackgroundColor color.ColorX, Y AxisLegend Legendplotters []Plotter
}
然后,通过直接给画布结构字段赋值,设置图像的属性。例如p.Title.Text = "Get Started
设置图像标题内容;p.X.Label.Text = "X"
,p.Y.Label.Text = "Y"
设置图像的 X 和 Y 轴的标签名。
再然后,使用plotutil
或者其他子包的方法在画布上绘制,上面代码中调用AddLinePoints()
绘制了 3 条折线。
最后保存图像,上面代码中调用p.Save()
方法将图像保存到文件中。