最近在看客户端GUI,需要在界面中显示图表,于是github一通搜索,找到一个符合的。
go-chart,它的图表可做为图片保存。
使用中发现原不支持中文,又是一通搜索、测试和啃部份源代码。发现方法如下:
func getChinaFont() *truetype.Font {
// 读字体数据
fontBytes, err := ioutil.ReadFile(File_Font) // File_Font字体文件路径
if err != nil {
return nil
}
font, err := truetype.Parse(fontBytes)
if err != nil {
return nil
}
return font
}
// 然后就是关键部份
...
graph := chart.BarChart{
Title: "网络流量统计表",
Background: chart.Style{
Padding: chart.Box{
Top: 40,
},
},
Height: 512,
BarWidth: 60,
Bars: []chart.Value{
{Value: 5.25, Label: "Blue"},
{Value: 4.88, Label: "Green"},
{Value: 4.74, Label: "Gray"},
{Value: 3.22, Label: "Orange"},
{Value: 3, Label: "Test"},
{Value: 2.27, Label: "??"},
{Value: 1, Label: "!!"},
},
}
buffer := bytes.NewBuffer([]byte{})
graph.Font = getChinaFont() // 就是它,指定字体
...
以上只是关键部份,余下的就是常规保存或显示。