图表最大最小值设置

图表最大最小值设置

图表多条数据折线需要设置合适的最大值和最小值,以便清晰展示曲线趋势变化。

方法一:SQL查询

基础极值

-- 最小值
sql("数据库","select least(min(column1),min(column2),min(column3)) from 表名",1,1)

-- 最大值  
sql("数据库","select greatest(max(column1),max(column2),max(column3)) from 表名",1,1)

带边距的极值(推荐)

为了美观,在极值基础上增加10%的边距:

-- 最小值(减去10%边距)
sql("数据库","select 
least(min(column1),min(column2),min(column3)) - 
(greatest(max(column1),max(column2),max(column3)) - least(min(column1),min(column2),min(column3))) * 0.1 
from 表名",1,1)

-- 最大值(增加10%边距)
sql("数据库","select 
greatest(max(column1),max(column2),max(column3)) + 
(greatest(max(column1),max(column2),max(column3)) - least(min(column1),min(column2),min(column3))) * 0.1 
from 表名",1,1)

方法二:数据集函数

基础用法

-- 最大值
max(ds1.select(销量))

-- 最小值  
min(ds1.select(销量))

带边距处理

-- 最大值(增加20%边距)
if(max(ds1.select(销量)) >= 0, 
   max(ds1.select(销量)) * 1.2, 
   max(ds1.select(销量)) * 0.8)



-- 最小值(需判断正负)
if(min(ds1.select(销量)) < 0, 
   min(ds1.select(销量)) * 1.2, 
   min(ds1.select(销量)) * 0.8)


-- 考虑负值处理时,也可以使用以下公式(以最小值示例,最大值类似处理):
min(value("数据集",列号)) - (max(value("数据集",列号)) - min(value("数据集",列号))) * 0.2

函数对比

  • ds1.select(): 简单方便,但无法用于参数面板
  • value(): 可用于参数面板,替代ds1.select()
  • 性能: 数据集函数会降低性能,每次调用都会执行数据集查询

使用建议

  • 推荐使用1.2和0.8倍数设置上下限
  • 注意处理负值情况
  • 避免滥用数据集函数
posted @ 2025-06-01 17:42  灯熄帘摇月候身  阅读(35)  评论(0)    收藏  举报