Add Unit to XAxis as a publicly visible parameter

In some cases the XAxis may have a single long title.  This can result in very few increments being shown.
In order to be more flexible for those cases this allows the XAxis Tick frequency to be able to be directly controlled.
This commit is contained in:
Mike Jensen 2023-05-05 09:55:55 -06:00
parent c810369730
commit a158191faf
No known key found for this signature in database
GPG key ID: 2C909C9AAFB1047D
2 changed files with 4 additions and 2 deletions

View file

@ -176,7 +176,6 @@ func (a *axisPainter) Render() (Box, error) {
unit := opt.Unit
if unit <= 0 {
unit = ceilFloatToInt(float64(dataCount) / float64(fitTextCount))
unit = chart.MaxInt(unit, opt.SplitNumber)
// 偶数

View file

@ -40,7 +40,7 @@ type XAxisOption struct {
FontSize float64
// The flag for show axis, set this to *false will hide axis
Show *bool
// Number of segments that the axis is split into. Note that this number serves only as a recommendation.
// Number of segments that the axis is split into. Note that this number serves only as a recommendation to avoid writing overlap.
SplitNumber int
// The position of axis, it can be 'top' or 'bottom'
Position string
@ -55,6 +55,8 @@ type XAxisOption struct {
// The offset of label
LabelOffset Box
isValueAxis bool
// This value overrides SplitNumber, specifying directly the frequency at which the axis is split into, higher numbers result in less ticks
Unit int
}
const defaultXAxisHeight = 30
@ -90,6 +92,7 @@ func (opt *XAxisOption) ToAxisOption() AxisOption {
TextRotation: opt.TextRotation,
LabelOffset: opt.LabelOffset,
FirstAxis: opt.FirstAxis,
Unit: opt.Unit,
}
if opt.isValueAxis {
axisOpt.SplitLineShow = true