добавить пользовательские цвета, чтобы пойти ломтики диаграммы - PullRequest
0 голосов
/ 29 октября 2018

У меня проблемы с добавлением пользовательских цветов в срезы круговой диаграммы. Я использую библиотеку графиков и не знаю, как динамически добавлять пользовательские цвета в диаграмму.

Здесь я работаю над графиком с использованием этого кода, я знаю, что у нас есть опция стиля диаграммы для назначения цветов с помощью drawing.Color{R,G,B,A}, но для каждого среза будет задан только один цвет. Я хочу, чтобы для каждого фрагмента круговой диаграммы был указан собственный цвет

   raw := `{"reaction_summary": {"ANGRY": 7,"HAHA": 40,"LIKE": 161,"LOVE": 56,"SAD": 26,"SHOCK": 6}}`

// Parse JSON
data := struct {
    ReactionSummary map[string]int `json:"reaction_summary"`
}{}
if err := json.Unmarshal([]byte(raw), &data); err != nil {
    log.Fatal(err)
}
// Populate a slice of chart values
var values []chart.Value
for l, v := range data.ReactionSummary {
    values = append(values, chart.Value{Label: l, Value: float64(v)})
}
// Initialize the chart
pie := chart.PieChart{
    Width:  512,
    Height: 512,
    Values: values,
}

Круговая диаграмма здесь

1 Ответ

0 голосов
/ 29 октября 2018

См. Этот пример: https://github.com/wcharczuk/go-chart/blob/master/_examples/custom_styles/main.go

Для каждого из ваших chart.Value{Label: l, Value: float64(v)} вы можете указать атрибут Style: https://godoc.org/github.com/wcharczuk/go-chart#Value

Атрибут style может принимать цвет, обводку и другие вещи:

Style: chart.Style{
    Show:        true,                           //note; if we set ANY other properties, we must set this to true.
    StrokeColor: drawing.ColorRed,               // will supercede defaults
    FillColor:   drawing.ColorRed.WithAlpha(64), // will supercede defaults
},

Дополнительные параметры здесь: https://godoc.org/github.com/wcharczuk/go-chart#Style

Пожалуйста, не забудьте указать ссылку на библиотеку, которую вы используете в будущем.

Если вам нужны пользовательские цвета в JSON, либо используйте значения RGB в строке json и разберите их в структуру, либо определите цвета в структуре в своем коде и используйте переданные значения.

...