From 3af0d4d4450652f132a8f5482aa30e0eb39ba9d4 Mon Sep 17 00:00:00 2001 From: vicanso Date: Thu, 14 Jul 2022 20:14:32 +0800 Subject: [PATCH] fix: fix pie chart legend --- chart_option_test.go | 2 +- charts.go | 7 ++++++- pie_chart_test.go | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/chart_option_test.go b/chart_option_test.go index a025c25..1238422 100644 --- a/chart_option_test.go +++ b/chart_option_test.go @@ -368,7 +368,7 @@ func TestPieRender(t *testing.T) { assert.Nil(err) data, err := p.Bytes() assert.Nil(err) - assert.Equal("\\nSearch EngineDirectEmailUnion AdsVideo AdsRainfall vs EvaporationFake DataSearch Engine: 33.3%Direct: 23.35%Email: 18.43%Union Ads: 15.37%Video Ads: 9.53%", string(data)) + assert.Equal("\\nSearch EngineDirectEmailUnion AdsVideo AdsRainfall vs EvaporationFake DataSearch Engine: 33.3%Direct: 23.35%Email: 18.43%Union Ads: 15.37%Video Ads: 9.53%", string(data)) } func TestRadarRender(t *testing.T) { diff --git a/charts.go b/charts.go index 41802d9..36bb17e 100644 --- a/charts.go +++ b/charts.go @@ -136,9 +136,14 @@ func defaultRender(p *Painter, opt defaultRenderOption) (*defaultRenderResult, e return nil, err } + top := chart.MaxInt(legendHeight, titleBox.Height()) + // 如果是垂直方式,则不计算legend高度 + if opt.LegendOption.Orient == OrientVertical { + top = titleBox.Height() + } p = p.Child(PainterPaddingOption(Box{ // 标题下留白 - Top: chart.MaxInt(legendHeight, titleBox.Height()) + 20, + Top: top + 20, })) } diff --git a/pie_chart_test.go b/pie_chart_test.go index 070fb03..c373a7e 100644 --- a/pie_chart_test.go +++ b/pie_chart_test.go @@ -78,7 +78,7 @@ func TestPieChart(t *testing.T) { } return p.Bytes() }, - result: "\\nSearch EngineDirectEmailUnion AdsVideo AdsRainfall vs EvaporationFake DataSearch Engine: 33.3%Direct: 23.35%Email: 18.43%Union Ads: 15.37%Video Ads: 9.53%", + result: "\\nSearch EngineDirectEmailUnion AdsVideo AdsRainfall vs EvaporationFake DataSearch Engine: 33.3%Direct: 23.35%Email: 18.43%Union Ads: 15.37%Video Ads: 9.53%", }, } for _, tt := range tests {