From 9552e877ce7d75fd60f5a0c56a7b40f322866d63 Mon Sep 17 00:00:00 2001 From: monitor1394 Date: Thu, 25 Aug 2022 13:37:36 +0800 Subject: [PATCH] [feature][formatter] support {d3} --- CHANGELOG.md | 1 + Runtime/Component/Tooltip/Tooltip.cs | 1 + Runtime/Helper/FormatterHelper.cs | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4c366bb..d12b4bfc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ ## master +* (2022.08.25) 增加`formatter`对`{d3}`指定维度数据百分比的支持 * (2022.08.24) 修复`ScatterChart`的`label`不刷新的问题 * (2022.08.24) 修复`MarkLine`的`label`某些情况下显示异常的问题 diff --git a/Runtime/Component/Tooltip/Tooltip.cs b/Runtime/Component/Tooltip/Tooltip.cs index 418c679a..948e06f6 100644 --- a/Runtime/Component/Tooltip/Tooltip.cs +++ b/Runtime/Component/Tooltip/Tooltip.cs @@ -189,6 +189,7 @@ namespace XCharts.Runtime /// {g}为当前所指示的serie的数据总个数。
/// {c0}表示当前数据项维度为0的数据。
/// {c1}表示当前数据项维度为1的数据。
+ /// {d3}表示维度3的数据的百分比。它的分母是默认维度(一般是1维度)数据。
/// |表示多个列的分隔。
/// 示例:"{i}", "{.}|{a}|{c}", "{.}|{b}|{c2:f2}" /// diff --git a/Runtime/Helper/FormatterHelper.cs b/Runtime/Helper/FormatterHelper.cs index 6cb3a659..02ddaea8 100644 --- a/Runtime/Helper/FormatterHelper.cs +++ b/Runtime/Helper/FormatterHelper.cs @@ -205,7 +205,9 @@ namespace XCharts.Runtime } else if (p == 'd' || p == 'D') { - var rate = total == 0 ? 0 : value / total * 100; + var rate = pIndex >= 0 && serieData != null ? + (value == 0 ? 0 : serieData.GetData(pIndex) / value * 100) : + (total == 0 ? 0 : value / total * 100); content = content.Replace(old, ChartCached.NumberToStr(rate, numericFormatter)); } else if (p == 'c' || p == 'C')