Golang中最优秀的开源图表库有哪些?

Golang中最优秀的开源图表库有哪些? 你好,我正在寻找能在本地(即非服务API)创建3D图表的工具。我发现了一些不同的图表包(go-analyze、go-chart、go charts),但不知道哪个最好,或者我是否遗漏了什么。必须是开源的。谢谢。

5 回复

我快速浏览了 go-charts 的示例图表,但很遗憾没有看到 3D 图。

更多关于Golang中最优秀的开源图表库有哪些?的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


我想是的,但由于我对Go语言还不够深入,所以我来确认一下,看看是否遗漏了什么,或者是否有明显的优胜方案。

如果你已经找到了一些候选方案,不妨亲自尝试一下。只有在你亲自试用之后,才能对它们的优缺点有一个大致的了解。 或者,更极端一点,直接调用绘图 API 自己来画?

你好,我只用过 GitHub - vicanso/go-charts: 一个用于 Golang 的图表库,它相当简单并且会定期更新。

在Golang中创建3D图表的开源库选择有限,以下是几个值得考虑的项目:

1. go-plotly 基于Plotly的Golang封装,支持3D图表:

import "github.com/go-plotly/plotly"
// 创建3D散点图
trace := plotly.Scatter3d{
    X: []float64{1,2,3,4},
    Y: []float64{2,3,1,4},
    Z: []float64{1,2,3,4},
    Mode: "markers",
}

2. gonum/plot Gonum生态系统的绘图库,支持基础3D功能:

import "gonum.org/v1/plot/vg"
import "gonum.org/v1/plot/vg/draw"
// 3D曲面图示例
type Surface3D struct {
    X, Y, Z [][]float64
}

3. go-chart 虽然主要专注于2D,但可通过扩展实现简单3D效果:

import "github.com/wcharczuk/go-chart"
// 创建3D柱状图的基础结构
type BarChart3D struct {
    chart.Chart
    Data []TripleValue
}
type TripleValue struct{ X, Y, Z float64 }

4. gnuplot-go 调用gnuplot生成3D图表:

import "github.com/sbinet/go-gnuplot"
func create3DPlot() {
    p, _ := gnuplot.NewPlotter("")
    defer p.Close()
    p.Cmd("splot 'data.dat' with lines")
}

5. 自定义OpenGL方案 对于复杂3D需求,建议结合GoGL:

import "github.com/go-gl/gl/v4.1-core/gl"
// 使用OpenGL直接渲染3D图表
func render3DChart(vertices []float32) {
    gl.Begin(gl.TRIANGLES)
    for _, v := range vertices {
        gl.Vertex3f(v, v, v)
    }
    gl.End()
}

推荐方案:

  • 快速原型:使用go-plotly
  • 科学计算:选择gonum/plot
  • 需要交互:考虑集成WebGL(通过wasm)
  • 高性能需求:直接使用OpenGL绑定

当前Golang的3D图表生态相对年轻,若项目要求高,可能需要组合多个库或实现自定义渲染器。

回到顶部