Пример #1
0
        protected override void RefreshTooltip()
        {
            var xData = m_Tooltip.runtimeXValues[0];
            var yData = m_Tooltip.runtimeYValues[0];

            if (IsCategory() && (xData < 0 || yData < 0))
            {
                return;
            }
            sb.Length = 0;
            for (int i = 0; i < m_Series.Count; i++)
            {
                var serie  = m_Series.GetSerie(i);
                var xAxis  = m_XAxises[serie.axisIndex];
                var yAxis  = m_YAxises[serie.axisIndex];
                var xCount = xAxis.data.Count;
                var yCount = yAxis.data.Count;
                if (serie.show && serie.type == SerieType.Heatmap)
                {
                    if (IsCategory())
                    {
                        string key       = serie.name;
                        var    serieData = serie.data[(int)xData * yCount + (int)yData];
                        var    value     = serieData.data[2];
                        var    color     = m_VisualMap.enable ? m_VisualMap.GetColor(value) :
                                           (Color)m_ThemeInfo.GetColor(serie.index);
                        sb.Append("\n")
                        .Append(key).Append(!string.IsNullOrEmpty(key) ? "\n" : "")
                        .Append("<color=#").Append(ChartCached.ColorToStr(color)).Append(">● </color>")
                        .Append(xAxis.data[(int)xData]).Append(": ")
                        .Append(ChartCached.FloatToStr(value));
                    }
                }
            }
            m_Tooltip.UpdateContentText(sb.ToString().Trim());
            var pos = m_Tooltip.GetContentPos();

            if (pos.x + m_Tooltip.runtimeWidth > chartWidth)
            {
                pos.x = chartWidth - m_Tooltip.runtimeWidth;
            }
            if (pos.y - m_Tooltip.runtimeHeight < 0)
            {
                pos.y = m_Tooltip.runtimeHeight;
            }
            m_Tooltip.UpdateContentPos(pos);
            m_Tooltip.SetActive(true);

            for (int i = 0; i < m_XAxises.Count; i++)
            {
                UpdateAxisTooltipLabel(i, m_XAxises[i]);
            }
            for (int i = 0; i < m_YAxises.Count; i++)
            {
                UpdateAxisTooltipLabel(i, m_YAxises[i]);
            }
        }
Пример #2
0
        protected override void UpdateTooltip()
        {
            var xData = m_Tooltip.runtimeXValues[0];
            var yData = m_Tooltip.runtimeYValues[0];

            if (IsCategory() && (xData < 0 || yData < 0))
            {
                return;
            }
            sb.Length = 0;
            for (int i = 0; i < m_Series.Count; i++)
            {
                var serie  = m_Series.GetSerie(i);
                var xAxis  = m_XAxises[serie.axisIndex];
                var yAxis  = m_YAxises[serie.axisIndex];
                var xCount = xAxis.data.Count;
                var yCount = yAxis.data.Count;
                if (serie.show && serie.type == SerieType.Heatmap)
                {
                    if (IsCategory())
                    {
                        string key       = serie.name;
                        var    serieData = serie.data[(int)xData * yCount + (int)yData];
                        var    value     = serieData.data[2];
                        var    color     = m_VisualMap.enable ? m_VisualMap.GetColor(value) :
                                           (Color)m_ThemeInfo.GetColor(serie.index);
                        sb.Append("\n")
                        .Append(key).Append(!string.IsNullOrEmpty(key) ? "\n" : "")
                        .Append("<color=#").Append(ChartCached.ColorToStr(color)).Append(">● </color>")
                        .Append(xAxis.data[(int)xData]).Append(": ")
                        .Append(ChartCached.FloatToStr(value, string.Empty));
                    }
                }
            }
            TooltipHelper.SetContentAndPosition(tooltip, sb.ToString().Trim(), chartRect);
            m_Tooltip.SetActive(true);

            for (int i = 0; i < m_XAxises.Count; i++)
            {
                UpdateAxisTooltipLabel(i, m_XAxises[i]);
            }
            for (int i = 0; i < m_YAxises.Count; i++)
            {
                UpdateAxisTooltipLabel(i, m_YAxises[i]);
            }
        }