module
0.0.0-20230509105829-f7c34fe9c795
Repository: https://github.com/jszczuko/plot4tview.git
Documentation: pkg.go.dev
# README
plot4tview
Plots for tview.
Set of UI primitives that I was missing from tview project.
Installation
go get github.com/jszczuko/plot4tview
Demo
You can find source file and [test data] (pkg/demo/test_data.txt) in demo package.
package main
import (
"fmt"
"log"
"os"
"time"
"github.com/jszczuko/plot4tview/pkg/gui"
"github.com/rivo/tview"
)
func main() {
file, err := os.OpenFile("logs.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0666)
if err != nil {
log.Fatal(err)
}
log.SetOutput(file)
app := tview.NewApplication()
data := make([][]float64, 0)
data_file, err := os.Open("test_data.txt")
if err != nil {
log.Fatal(err)
}
index := 0
for {
var flt float64
n, err := fmt.Fscanln(data_file, &flt)
if n == 0 || err != nil {
break
}
point := make([]float64, 2)
point[0] = float64(index)
point[1] = flt
data = append(data, point)
index++
}
p := gui.NewPlot()
bp := gui.NewBarPlot()
dp := gui.NewDotPlot()
p.SetXAxisText("Time", 0)
p.SetYAxisText("% of memory", 1)
bp.SetXAxisText("Time", 0)
bp.SetYAxisText("% of CPU", 1)
dp.SetXAxisText("Time", 0)
dp.SetYAxisText("% of CPU", 1)
maxEnd := len(data) - 1
start := 0
stop := 190
p.SetData(data[start:stop])
bp.SetData(data[start:stop])
dp.SetData(data[start:stop])
flex := tview.NewFlex().SetDirection(tview.FlexRow).
AddItem(bp.SetPlotTite(" Bar Plot ").SetPlotBorder(true), 0, 1, false).
AddItem(dp.SetPlotTite(" Point Plot ").SetPlotBorder(true), 0, 1, false).
AddItem(p.SetPlotTite(" Plot ").SetPlotBorder(true), 0, 1, true)
if err := app.SetRoot(flex,
true).EnableMouse(true).Run(); err != nil {
panic(err)
}
}
# Packages
No description provided by the author