plot--绘图库

news/2025/1/23 11:57:01/文章来源:https://www.cnblogs.com/guyouyin123/p/18687476

目录
  • plot--绘图库
    • 原文地址
    • 简介
    • 快速使用

plot--绘图库

原文地址

https://darjun.github.io/2020/04/12/godailylib/plot/

简介

本文介绍 Go 语言的一个非常强大、好用的绘图库——plotplot内置了很多常用的组件,基本满足日常需求。同时,它也提供了定制化的接口,可以实现我们的个性化需求。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图片文件:

image-20250123114935488

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()方法将图像保存到文件中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873646.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查询语句-更新语句

描述查询语句->更新语句的过程:步骤0:编写查询的sql 步骤1:将 “SELECT * FROM” 修改为 “UPDATE” 步骤2:在 “WHERE” 之前新增SET关键字

2025年Rust权威指南、Rust程序设计语言中文版PDF下载

本书英文名为《The Rust Programming Language》,中文版名为《Rust权威指南》,社区翻译版名为《Rust程序设计语言》。 本书由 Rust 核心开发团队编写而成,由浅入深地探讨了 Rust 语言的方方面面。Rust程序员必读入门书籍。2025年《Rust权威指南》、《Rust程序设计语言》中文…

NocoBase 本周更新汇总:改进文件存储扩展

本周更新包括:改进文件存储扩展、缺陷修复等。汇总一周产品更新日志,最新发布可以前往我们的博客查看。 NocoBase 目前更新包括的版本更新包括三个分支:main ,next和 develop。main :截止目前最稳定的版本,推荐安装此版本。 next:包含即将发布的新功能,经过初步测试的版…

102400118 林嘉祚 集训第一专题

AC截图1、Long Loong 本题易知字符串开头为L,结尾为ng,唯一不同的是中间o的个数,于是想到用3个字符串拼接得到目标字符串。(直接用for循环输出似乎更简单) #include <iostream> #include <string> using namespace std;int main() {int n;cin >> n;string…

【Java开发】magic-api:一个Java接口快速开发框架

今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic-api 提供的 UI 界面完成,自动映射为 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象即可完成常见的 HTTP AP…

联想 ThinkPad 笔记本T14 CPU 降频解决方案

原因: 在工作中,打开多个 IDE 的情况下,会出现卡顿问题,发现是由于 CPU 降频到 0.5GHz 导致的。 环境: 笔记本是联想 ThinkPad T14 CPU:12th Gen Interl Core i7-1260P 系统为 Window10 专业版解决办法 经过搜索后,适合的方案如下:打开电源的卓越性能模式 在 Windows Po…

ASP.NET Core 中基于 Cookie 的身份鉴权实现步骤

在 ASP.NET Core 应用中,基于 Cookie 的身份鉴权是一种常见的身份验证方式,特别适用于传统的 Web 应用程序。Cookie 能够在用户的浏览器中存储身份验证数据,从而在用户访问应用的不同页面时保持登录状态。 一、配置 Cookie 身份验证 首先,在 Startup.cs 或 Program.cs 文件…

16 个 JavaScript 简写神技,提效 60%!

今天看到一片文章觉得很适合在工作中常常用得到 1. 三元运算符简化条件判断 // 传统写法 let result; if (someCondition) {result = yes; } else {result = no; }// 简写方式 const result = someCondition ? yes : no;2. 空值合并运算符 // 传统写法 const name = user.name…

.NET开源强大的高级日期和时间库

NodaTime 是一个为 .NET 设计的开源高级日期和时间库,提供了比 .NET 框架自带的 DateTime 和 DateTimeOffset 更加丰富和可靠的日期时间操作功能。 1. 安装 NodaTime 首先,通过 NuGet 安装 NodaTime 包: Install-Package NodaTime2. 基本概念 NodaTime 提供了多种日期和时间…

Python运行找不到tcl

运行程序提示如下: 说明D:/python/lib/tcl8.6找不到tcl8.6 解决办法:将D:\python\tcl下的tcl8.6和tk8.6两个文件夹复制到D:/python/lib/下问题得到解决

cad的打印到pdf 页边距处理

修改为微软的打印机, microsoft print to pdf后可以正常打印 但是测试过程中看到微软这个打印无法打印a2图纸 查询后是a2图纸不在默认的微软打印的列表中 按照网上的教程做了增加https://zhidao.baidu.com/question/988163076953180379.html我看图纸比例是按照1.8倍数来的, 按…