Render time.Duration formatted as reasonable values and not as regular numbers
mitar opened this issue · comments
On my x axis I use time.Duration
(duration from the start of the experiment). Currently values are rendered as nanoseconds. Ideally, they would be automatically rounded to some reasonable unit based on max/min of the x axis range. Ideally units would be also shown somewhere.
Bonus: 0 would start completely on the left as there cannot be negative duration.
Hi @mitar , I'm not quite sure what you meant the x axis
with time.Duration
.
The xAxis type does have a time
options instead.
Type of axis.
Option:
'value' Numerical axis, suitable for continuous data.
'category' Category axis, suitable for discrete category data. Category data can be auto retrieved from series.data.
'time' Time axis, suitable for continuous time series data. As compared to value axis, it has a better formatting for time and a different tick calculation method. For example, it decides to use month, week, day or hour for tick based on the range of span.
'log' Log axis, suitable for log data.
Could you plz provide more details about it? a some showcase is better.
I would hope that the library automatically detects the type of values used:
line := charts.NewLine()
line.SetXAxis([]time.Duration{0, time.Second, 2*time.Second, 3*time.Second})
Currently this renders as above. Ideally, it would render as 0 1 2 3
and unit "seconds" somewhere shown.
Hi @mitar . I see.
Unfortunately, we can't auto detect the data format per to current data types.
IMO, it is not a chart's responsibility to auto format data (convert and change data) by the data type
. Even if it could do it, it still needs configs such as format rules
(when to change, how to change) either.
If you wanna render data with seconds format, you need convert it to seconds format before you put it into datasets.
The issue is that I do not know how many labels there will be. So I do not know what is the best unit when I feed data to the chart.
Also, is there a way to make the x-axis 0 really start in the corner? I tried setting Min
to 0 but it didn't change anything.
The issue is that I do not know how many labels there will be. So I do not know what is the best unit when I feed data to the chart.
I don't understand what you meant here.
If you don't even know what's the best unit. how does chart auto know it ?
Also, is there a way to make the x-axis 0 really start in the corner? I tried setting
Min
to 0 but it didn't change anything.
and the x-axis config depends on the datasets if you use the category type. Maybe you wanna use it in value ?
If you don't even know what's the best unit. how does chart auto know it ?
Because it could know how many labels (resolution of labels) it has done.
I will find some way to estimate this on my side. It looks like echarts does not have that either.
and the x-axis config depends on the datasets if you use the category type. Maybe you wanna use it in value ?
That was it. It was taking numbers as categorical. Thank you.