From cad8296e28d7c233088e9e0ddc814440c528394f Mon Sep 17 00:00:00 2001 From: vicanso Date: Sun, 1 May 2022 11:15:13 +0800 Subject: [PATCH] fix: support chinese for axis, #4 --- README_zh.md | 2 ++ chart.go | 1 + xaxis.go | 3 +++ yaxis.go | 1 + 4 files changed, 7 insertions(+) diff --git a/README_zh.md b/README_zh.md index 6d794e0..57d9db4 100644 --- a/README_zh.md +++ b/README_zh.md @@ -219,3 +219,5 @@ BenchmarkMultiChartSVGRender-8 367 3356325 ns/op 默认使用的字符为`roboto`为英文字体库,因此如果需要显示中文字符需要增加中文字体库,`InstallFont`函数可添加对应的字体库,成功添加之后则指定`title.textStyle.fontFamily`即可。 在浏览器中使用`svg`时,如果指定的`fontFamily`不支持中文字符,展示的中文并不会乱码,但是会导致在计算字符宽度等错误。 + +[中文字库noto-cjk](https://github.com/googlefonts/noto-cjk) \ No newline at end of file diff --git a/chart.go b/chart.go index 6f4740f..21f2071 100644 --- a/chart.go +++ b/chart.go @@ -190,6 +190,7 @@ func (o *ChartOption) FillDefault(theme string) { if o.XAxis.Theme == "" { o.XAxis.Theme = theme } + o.XAxis.Font = o.Font } func (o *ChartOption) getWidth() int { diff --git a/xaxis.go b/xaxis.go index 1dca7bb..bd9d951 100644 --- a/xaxis.go +++ b/xaxis.go @@ -23,10 +23,12 @@ package charts import ( + "github.com/golang/freetype/truetype" "github.com/wcharczuk/go-chart/v2" ) type XAxisOption struct { + Font *truetype.Font // The boundary gap on both sides of a coordinate axis. // Nil or *true means the center part of two axis ticks BoundaryGap *bool @@ -66,6 +68,7 @@ func drawXAxis(p *Draw, opt *XAxisOption, yAxisCount int) (int, *Range, error) { Right: right, }), ) + dXAxis.Font = opt.Font if err != nil { return 0, nil, err } diff --git a/yaxis.go b/yaxis.go index 99093ec..1505d39 100644 --- a/yaxis.go +++ b/yaxis.go @@ -96,6 +96,7 @@ func drawYAxis(p *Draw, opt *ChartOption, axisIndex, xAxisHeight int, padding ch if err != nil { return nil, err } + dYAxis.Font = opt.Font NewAxis(dYAxis, data, style).Render() yRange.Size = dYAxis.Box.Height() return &yRange, nil