test: add test for funnel chart

This commit is contained in:
vicanso 2022-06-18 20:46:12 +08:00
parent 29c9281d7c
commit ad70a48944
7 changed files with 276 additions and 10 deletions

View file

@ -60,6 +60,13 @@ type BarChartOption struct {
Legend LegendOption
}
type barChartLabelRenderOption struct {
Text string
Style Style
X int
Y int
}
func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (Box, error) {
p := b.p
opt := b.opt
@ -95,6 +102,7 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
markPointPainter,
markLinePainter,
}
labelRenderOptions := make([]barChartLabelRenderOption, 0)
for index := range seriesList {
series := seriesList[index]
yRange := result.axisRanges[series.AxisIndex]
@ -156,9 +164,15 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
if !series.Label.Color.IsZero() {
labelStyle.FontColor = series.Label.Color
}
seriesPainter.OverrideTextStyle(labelStyle)
textBox := seriesPainter.MeasureText(text)
seriesPainter.Text(text, x+(barWidth-textBox.Width())>>1, barMaxHeight-h-distance)
labelRenderOptions = append(labelRenderOptions, barChartLabelRenderOption{
Text: text,
Style: labelStyle,
X: x + (barWidth-textBox.Width())>>1,
Y: barMaxHeight - h - distance,
})
}
markPointPainter.Add(markPointRenderOption{
@ -176,6 +190,10 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
Range: yRange,
})
}
for _, labelOpt := range labelRenderOptions {
seriesPainter.OverrideTextStyle(labelOpt.Style)
seriesPainter.Text(labelOpt.Text, labelOpt.X, labelOpt.Y)
}
// 最大、最小的mark point
err := doRender(rendererList...)
if err != nil {