我正致力于为各种成本中心创建任意两个季度之间成本差异的树形图。对于颜色范围,我创建了最小和最大成本的colstops。负值应以绿色显示,正值以红色显示。这是我如何创建colstops的代码。
由于没有选项以绿色自动显示负值,我在colstops中手动创建5个级别。当最大/最小值在50k以内时,这可以正常工作。
我从test $ value计算max和min,其中包含所有成本中心的成本。然后我将最小值和最大值四舍五入到最接近的250000值。在我的"结果"我将max1-min1范围转换为0-1的范围,res将包含规模的中点。然后我生成5级的colstops值。
max <- max(test$Value, na.rm=T)
min <- min(test$Value, na.rm=T)
## round up the max and min values to nearest 250000##
RoundUp <- function(from,to) ceiling(from/to)*to
RoundDown <- function(from,to) floor(from/to)*to
max1 <- RoundUp(max,250000)
min1 <- RoundDown(min,250000)
result=(1-0)/(max1- min1)*(0-max1);
res=result+1
colstops<- data.frame(q = c(0.01,res - 0.0001,res,res + 0.0001,1),c = c('#1a9641','#a6d96a','#ffffbf','#fdae61','#d7191c'))
colstops<<- list.parse2(colstops)
当标尺的范围在正侧和负侧超过100k而0在绿色或红色侧移动时会出现问题。
请建议我该如何解决这个问题?
下面的树形图图像精确显示-50k到50k范围内的颜色。但是在下一个图像中,当范围增加到50k以上时,0在绿色区域中向负侧移动。