在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

怎么把散点图连起来go语言?

使用go语言,实现输入坐标,在画板上显示,输入起点与终点,连起来???
最新回答
寒岛春信

2024-09-29 00:14:58

在Go语言中,你可以使用gonum/plot包来创建和操作散点图。然后,你可以通过直接操作散点图中的点,并将它们连接起来。
以下是一个简单的示例,演示了如何创建一个散点图,并在用户输入起点和终点之后,将这两个点连接起来。
首先,你需要安装gonum/plot包。你可以使用以下命令安装:
bash复制代码
go get -u gonum.org/v1/plot/...
然后,你可以创建一个简单的程序,如下所示:
go复制代码
package main

import (
"fmt"
"gonum.org/v1/plot"
"gonum.org/v1/plot/plotter"
"gonum.org/v1/plot/vg"
"log"
"os"
)

func main() {
// 创建一个新的散点图
p, err := plot.New()
if err != nil {
log.Fatal(err)
}

// 创建一个散点图的数据集
s, err := plotter.NewScatter(plotter.XYs{})
if err != nil {
log.Fatal(err)
}

// 将数据集添加到散点图中
p.Add(s)

// 显示散点图
if err := p.Save(4*vg.Inch, 4*vg.Inch, "scatter.png"); err != nil {
log.Fatal(err)
}

// 获取用户输入的起点和终点
var startX, startY, endX, endY float64
fmt.Println("请输入起点的x坐标:")
fmt.Scanln(&startX)
fmt.Println("请输入起点的y坐标:")
fmt.Scanln(&startY)
fmt.Println("请输入终点的x坐标:")
fmt.Scanln(&endX)
fmt.Println("请输入终点的y坐标:")
fmt.Scanln(&endY)

// 添加起点和终点到数据集中
s.Add(plotter.XY{X: startX, Y: startY})
s.Add(plotter.XY{X: endX, Y: endY})

// 将起点和终点连接起来
line, err := plotter.NewLine(plotter.XYs{
{X: startX, Y: startY},
{X: endX, Y: endY},
})
if err != nil {
log.Fatal(err)
}
p.Add(line)

// 保存并显示更新后的图像
if err := p.Save(4*vg.Inch, 4*vg.Inch, "scatter_with_line.png"); err != nil {
log.Fatal(err)
}
}
这个程序首先创建一个散点图,然后提示用户输入起点和终点的坐标。然后,它将这两个点添加到散点图中,并将它们连接起来。最后,它将更新后的图像保存到文件。