【问题标题】:add custom colors to go chart slices添加自定义颜色去图表切片
【发布时间】:2018-10-29 18:45:06
【问题描述】:

我无法在饼图切片中添加自定义颜色。我正在使用 go 图表库,但不确定如何在我的图表中动态添加自定义颜色。

我正在使用此代码制作图表,我知道我们有一个图表样式选项,可以使用 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,
}

Pie chart here

【问题讨论】:

    标签: go colors pie-chart go-chart


    【解决方案1】:

    请参阅此示例: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 中的自定义颜色,请使用 json 字符串中的 RGB 值并将它们解析为结构,或者在代码中定义结构中的颜色并使用传递的值。

    【讨论】:

    • 我尝试了 chart.Style 属性,但我真正想要的是每次循环迭代时添加不同的颜色。我们可以将颜色属性存储在一个数组中,以便每次迭代都不断改变颜色吗?还是有任何其他方法可以在循环中使用 chart.Style 继续更改颜色?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多