fix: fix unit count of xasix

This commit is contained in:
vicanso 2022-07-26 20:44:50 +08:00
parent 3d20bea846
commit cac6fd03d3
3 changed files with 10 additions and 4 deletions

View file

@ -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++

View file

@ -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]
}
}
}

View file

@ -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