private void SetTooltipIndicatorLabel(Tooltip tooltip, Axis axis, ChartLabel label)
        {
            if (label == null)
            {
                return;
            }
            if (double.IsPositiveInfinity(axis.context.pointerValue))
            {
                return;
            }
            label.SetActive(true);
            label.SetTextActive(true);
            label.SetPosition(axis.context.pointerLabelPosition);
            if (axis.IsCategory())
            {
                label.SetText(axis.GetData((int)axis.context.pointerValue));
            }
            else
            {
                label.SetText(axis.context.pointerValue.ToString("f2"));
            }
            var textColor = axis.axisLabel.textStyle.GetColor(chart.theme.axis.textColor);

            if (ChartHelper.IsClearColor(tooltip.indicatorLabelStyle.background.color))
            {
                label.color = textColor;
            }
            else
            {
                label.color = tooltip.indicatorLabelStyle.background.color;
            }
            label.SetTextColor(Color.white);
        }
        public static void AdjustRadiusAxisLabelPos(ChartLabel txt, Vector3 pos, Vector3 cenPos, float txtHig, Vector3 offset)
        {
            var txtWidth  = txt.text.GetPreferredWidth();
            var sizeDelta = new Vector2(txtWidth, txt.text.GetPreferredHeight());

            txt.text.SetSizeDelta(sizeDelta);
            var diff = pos.y - cenPos.y;

            if (diff > 20f) //left
            {
                pos = new Vector3(pos.x - txtWidth / 2, pos.y);
            }
            else if (diff < -20f) //right
            {
                pos = new Vector3(pos.x + txtWidth / 2, pos.y);
            }
            else
            {
                float y = pos.y > cenPos.y ? pos.y + txtHig / 2 : pos.y - txtHig / 2;
                pos = new Vector3(pos.x, y);
            }
            txt.SetPosition(pos);
        }