(原) Golang与图表:go-chart显示中文汉字

原创文章,请后转载,并注明出处。

最近在看客户端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()  // 就是它,指定字体
	...

以上只是关键部份,余下的就是常规保存或显示。

相关文章