本帖最后由 Crystal.Li 于 2021-6-22 09:28 编辑
在实际项目运行中,我们可能有这样的需求:对于一个柱状图,我们希望当数值大于某个值时显示一种颜色,小于某个值时显示某个颜色。以便于更加容易的区分数值。那么这个需求使用我们的报表功能如何实现呢?接下来为您揭晓:
1、处理数据集
要实现这个功能我们可能需要对数据集的字段做一个处理,我们的原始数据往往是类似这样的明细数据:
此时,如果我们想通过柱状图的方式查看各个销售大区下的购买数量,往往这样实现:
那么对于上图,我们如何实现 “销售总量大于2000的柱子” 显示一个颜色,其余柱子显示另外一种颜色呢?
这种情况下,就需要我们先对数据集处理了,提前计算好各个大区的销售总量。这里我使用的是mysql数据源,所以通过sql语句这样处理:(其余数据源见仁见智)
- select 销售大区, sum(购买数量) as 数量和 from 销售明细 group by 销售大区
复制代码
最终数据集字段:
2、绑定上一步骤处理好的数据集字段及颜色字段
如果您的原始数据就是上一步的数据,即可直接跳过上一步,如果是明细,就需要按照上一步骤进行处理。处理完成将字段绑定到图表:
如上图,对右侧颜色字段绑定一个表达式,这个表达式就是根据条件显示图表颜色的关键:
- {IIF(数量和 > 2000, "大于2000", "小于等于2000")}
复制代码 这个表达式的意思是,当数值大于2000时,属于分类“大于2000”,小于等于2000时,属于分类“小于等于2000”,这个分类名您可根据自身需求自定义,只要能区分这两个区间即可。
3、指定颜色
选中整个图表,右侧属性设置,在调色板选择自定义,下方添加指定自己想要的颜色:
预览:
另外,如果您有不止一个颜色,需要指定多个颜色,那么在第二步颜色字段表达式中,不要使用IIF函数,使用Switch函数即可,实现思想是一样的。关于Switch函数的用法:
|