首页 > 其他分享 >plot--绘图库

plot--绘图库

时间:2025-01-23 12:12:34浏览次数:1  
标签:plot err rand -- Text 图库 points org

目录

plot--绘图库

原文地址

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

简介

本文介绍 Go 语言的一个非常强大、好用的绘图库——plotplot内置了很多常用的组件,基本满足日常需求。同时,它也提供了定制化的接口,可以实现我们的个性化需求。plot主要用于将数据可视化,便于我们观察、比较。

快速使用

先安装:

$ go get gonum.org/v1/plot/

后使用:

package main

import (
  "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 string
    Padding vg.Length
    draw.TextStyle
  }
  BackgroundColor color.Color
  X, Y Axis
  Legend Legend
  plotters []Plotter
}

然后,通过直接给画布结构字段赋值,设置图像的属性。例如p.Title.Text = "Get Started设置图像标题内容;p.X.Label.Text = "X"p.Y.Label.Text = "Y"设置图像的 X 和 Y 轴的标签名。

再然后,使用plotutil或者其他子包的方法在画布上绘制,上面代码中调用AddLinePoints()绘制了 3 条折线。

最后保存图像,上面代码中调用p.Save()方法将图像保存到文件中。

标签:plot,err,rand,--,Text,图库,points,org
From: https://www.cnblogs.com/guyouyin123/p/18687476

相关文章

  • java基础Day6 java方法
    一、什么是方法?System.out.println()//System是一个类,out是一个对象,println()就是一个方法方法是语句的集合命名规则:首字母小写+驼峰命名规则Ex.加法Demo01//加法publicintadd(inta,intb){returna+b;}此时在main方法里直接调用不了,改为:p......
  • No.13 数据可视化02
    主要内容:条形图饼图直方图核密度图等1.条形图barplot()1.1调用数据mtcarsmtcars$gear结果:>mtcars$gear[1]444333344443333334443333345555541.2频数统计table()函数#统计频数table(mtcars$gear)结果:>#统计频数>tabl......
  • Web-Chains:Web 版 Java Payload 生成与利用工具
    免责声明本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。本文不对读者的任何违法行为承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。工具介绍Web-Chains项目,又名Java-Chains项目,我们站在巨人......
  • [BZOJ4671] 异或图 题解
    我能说什么!抽象了这!看到\(n\le10\)的黑题顿感大事不妙。我们考虑设\(f(i)\)表示将\(n\)个点划分为至少\(i\)个连通块时的方案数。我们可以暴力枚举每个点在哪个连通块里。划分方案是\(Bell(n)\le21147\)的。显然的,相同块内暂时忽略,不同块间不能有边。于是我们将每......
  • 渣土车监控摄像头
    渣土车监控摄像头是一种结合了监控摄像技术和车辆安全管理的先进设备,旨在通过实时监测和录制车辆行驶过程中的画面,提高渣土车的安全性和管理效率。这种摄像头在建筑工地、城市道路、交通执法等领域有着广泛的应用前景。渣土车监控摄像头在建筑工地运输管理中具有重要意义。在大......
  • 安全帽佩戴识别摄像机
    在现代工业和建筑等诸多领域中,安全始终是重中之重。每一处施工现场、每一个生产车间都潜藏着可能对人员造成伤害的风险因素。而安全帽,作为保护工作人员头部免受伤害的关键装备,其是否被正确佩戴就显得尤为关键。此时,安全帽佩戴识别摄像机应运而生,宛如一位忠诚且智慧的安全卫士,时刻......
  • 戴头盔识别摄像机
    戴头盔识别摄像机是一种结合了人工智能技术和监控摄像技术的先进设备,旨在通过实时监测和分析监控画面中的人员头部状态信息,识别是否有人未佩戴安全头盔,并及时发出警报提醒相关人员。这种摄像机在建筑工地、交通管理、体育赛事等领域有着广泛的应用前景。在建筑工地安全管理中,戴......
  • 道路流量监测摄像机
    道路流量监测摄像机是一种结合了监控摄像技术和交通管理的先进设备,旨在通过实时监测和分析道路上车辆的行驶情况,收集交通流量数据并进行统计分析。这种摄像机在城市交通管理、道路规划、交通安全等领域有着广泛的应用前景。在城市交通管理中,道路流量监测摄像机具有重要意义。随......
  • 占用消防通道监测摄像机
    占用消防通道是一种严重违规行为,可能导致火灾时救援车辆无法及时到达现场,增加火灾事故的风险。为了有效监控和预防这种情况发生,占用消防通道监测摄像机应运而生。这种设备结合了监控摄像技术和智能分析技术,可以实时监测消防通道的情况,并及时发出警报提醒相关人员。在商业综合体......
  • C# OpenCV机器视觉:红外体温检测
    在一个骄阳似火的夏日,全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇,平日里熙熙攘攘的街道变得冷冷清清,人们戴着口罩,行色匆匆,眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人,看着这一切,心急如焚,心中暗下决心:“我一定要利用我的技术,为抗击疫情做点什么!”思来想......