Gonum Plot Loop Сквозь ломтик
Я пытаюсь добавить несколько графиков, используя цикл, но я не могу понять, как вставить строки. Вот код, над которым я работаю:
func plot_stochastic_processes(processes [][]float64, title string) {
p, err := plot.New()
if err != nil {
panic(err)
}
p.Title.Text = title
p.X.Label.Text = "X"
p.Y.Label.Text = "Y"
err = plotutil.AddLinePoints(p,
"Test", getPoints(processes[1]),
//Need to figure out how to loop through processes
)
if err != nil {
panic(err)
}
// Save the plot to a PNG file.
if err := p.Save(4*vg.Inch, 4*vg.Inch, "points.png"); err != nil {
panic(err)
}
}
Моя функция getPoints выглядит так:
func getPoints(line []float64) plotter.XYs {
pts := make(plotter.XYs, len(line))
for j, k := range line {
pts[j].X = float64(j)
pts[j].Y = k
}
return pts
}
Я получаю сообщение об ошибке при попытке поставить цикл, где находится закомментированный раздел. Я знаю, что это должно быть довольно просто. Возможно, цикл до этого, чтобы получить список строк?
Что-то вроде
for i, process := range processes {
return "title", getPoints(process),
}
Очевидно, я знаю, что это не правильно, но не знаю, как это сделать.
1 ответ
Решение
Я думаю, что вы хотите сначала извлечь ваши данные в []interface{}
, а затем вызвать AddLinePoints. Примерно (я не проверял):
lines := make([]interface{},0)
for i, v := range processes {
lines = append(lines, "Title" + strconv.Itoa(i))
lines = append(lines, getPoints(v))
}
plotutil.AddLinePoints(p, lines...)