gpt4 book ai didi

colors - icCube - 基于最小值和最大值插值 RGBColors?

转载 作者:行者123 更新时间:2023-12-01 23:47:26 26 4
gpt4 key购买 nike

我知道 InterpolateRGBColors 函数正在按 0 到 1 之间的值的位置返回颜色...所以它似乎只能使用百分比,而不是数字...

有没有一种方法可以具有相同的功能,但基于集合中返回的最小值和最大值?

我想要的是将颜色归因于我的度量,但在 min([Measures].[NbSejours]) 到 max([Measures].[NbSejours]) 的范围内(不是 0 到 1)...

WITH 
MEMBER [Measures].[color] AS
InterpolateRGBColors(
[Measures].[NbSejours]
,rgb(176,224,230)
,rgb(135,206,235)
,rgb(0,191,255)
,rgb(100,149,237)
,rgb(0,0,255)
,rgb(0,0,139)
,rgb(25,25,112)
), BACK_COLOR=currentCellValue()
SELECT
{
{[Measures].[NbSejours]}
,[Measures].[color]
} ON COLUMNS
,{
NonEmpty
(
[Etablissement].[Etablissement].[Etablissement].ALLMEMBERS
,[Measures].[NbSejours]
)
} ON ROWS
FROM
(
SELECT
{{[Periode].[Periode].[All-M].&[2013]}} ON 0
FROM [Cube]
)
CELL PROPERTIES
STYLE
,CLASSNAME
,VALUE
,FORMATTED_VALUE;

有办法吗?

最佳答案

InterpolateRGBColors期望一个介于 0 和 1 之间的数字用于插值。因此,我们需要扩展我们的衡量标准,以确保我们获得正确的颜色。

我们的现场演示中有一个示例,here .

我们需要在 0,1 之间缩放[Measures].[NbSejours]。 icCube DistributionFlat 和 DistributionRank 中有两个没有记录的函数。

一个非高效的版本

WITH
SET [AxisX] AS NonEmpty([Etablissement].Etablissement].Etablissement].ALLMEMBERS,[Measures].[NbSejours])
FUNCTION distr(x_) as DistributionFlat( [AxisX], [Measures].[NbSejours], x_ )
MEMBER [Measures].[color] AS
InterpolateRGBColors(
distr([Measures].[NbSejours])
,rgb(176,224,230)
,rgb(135,206,235)
,rgb(0,191,255)
,rgb(100,149,237)
,rgb(0,0,255)
,rgb(0,0,139)
,rgb(25,25,112)
), BACK_COLOR=currentCellValue()
....

一旦我有一点时间,我将使用 Vectors(herehere)编写一个性能更高的版本,如上例所示,我们每次都计算集合的值。

希望对你有帮助

关于colors - icCube - 基于最小值和最大值插值 RGBColors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319252/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com