feat: support label for line chart, #23
This commit is contained in:
parent
825e65d930
commit
de49ef8c68
3 changed files with 89 additions and 14 deletions
17
bar_chart.go
17
bar_chart.go
|
|
@ -62,13 +62,6 @@ 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
|
||||
|
|
@ -100,11 +93,12 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
|
|||
|
||||
markPointPainter := NewMarkPointPainter(seriesPainter)
|
||||
markLinePainter := NewMarkLinePainter(seriesPainter)
|
||||
labelPainter := NewSeriesLabelPainter(seriesPainter)
|
||||
rendererList := []Renderer{
|
||||
labelPainter,
|
||||
markPointPainter,
|
||||
markLinePainter,
|
||||
}
|
||||
labelRenderOptions := make([]barChartLabelRenderOption, 0)
|
||||
for index := range seriesList {
|
||||
series := seriesList[index]
|
||||
yRange := result.axisRanges[series.AxisIndex]
|
||||
|
|
@ -168,8 +162,7 @@ func (b *barChart) render(result *defaultRenderResult, seriesList SeriesList) (B
|
|||
}
|
||||
|
||||
textBox := seriesPainter.MeasureText(text)
|
||||
|
||||
labelRenderOptions = append(labelRenderOptions, barChartLabelRenderOption{
|
||||
labelPainter.Add(LabelValue{
|
||||
Text: text,
|
||||
Style: labelStyle,
|
||||
X: x + (barWidth-textBox.Width())>>1,
|
||||
|
|
@ -192,10 +185,6 @@ 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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue