diff --git a/axis.go b/axis.go index ebc6782..8e5bfda 100644 --- a/axis.go +++ b/axis.go @@ -156,8 +156,11 @@ func (a *axisPainter) Render() (Box, error) { // 增加30px来计算文本展示区域 textFillWidth := float64(textMaxWidth + 20) - textCount := ceilFloatToInt(float64(top.Width()) / textFillWidth) - unit := ceilFloatToInt(float64(dataCount) / float64(chart.MaxInt(textCount, opt.SplitNumber))) + // 根据文本宽度计算较为符合的展示项 + fitTextCount := ceilFloatToInt(float64(top.Width()) / textFillWidth) + + unit := ceilFloatToInt(float64(dataCount) / float64(fitTextCount)) + unit = chart.MaxInt(unit, opt.SplitNumber) // 偶数 if unit%2 == 0 && dataCount%(unit+1) == 0 { unit++ diff --git a/chart_option.go b/chart_option.go index 39de686..41fda46 100644 --- a/chart_option.go +++ b/chart_option.go @@ -108,9 +108,12 @@ func TitleOptionFunc(title TitleOption) OptionFunc { } // TitleTextOptionFunc set title text of chart -func TitleTextOptionFunc(text string) OptionFunc { +func TitleTextOptionFunc(text string, subtext ...string) OptionFunc { return func(opt *ChartOption) { opt.Title.Text = text + if len(subtext) != 0 { + opt.Title.Subtext = subtext[0] + } } } diff --git a/legend.go b/legend.go index 8f21afb..035642c 100644 --- a/legend.go +++ b/legend.go @@ -232,7 +232,7 @@ func (l *legendPainter) Render() (Box, error) { x0 += measureList[index].Width() if opt.Align == AlignRight { x0 += textOffset - x0 = drawIcon(0, x0) + x0 = drawIcon(y0, x0) } if opt.Orient == OrientVertical { y0 += offset