def algorithm():
model = {
'crit_value': 1.5,
'max_value': 2,
'org_values': [-0.9, -1.85, 1, -1.9, 0.75, 0.5, 3, -2, 1.3, -1.5, -0.9, 1.7],
'limited_values': []
}
return model
def describeChartInJson(model):
conf = {
'type': 'hbar',
'scale-x': {
'values': '1:12:1',
'guide': {
'line-color': 'lightgrey',
'line-width': 1,
'line-style': 'solid',
'visible': 'true'
},
'rules': [
{
'rule': '%v >=1 && %v <= 9',
'format': 'L0%v',
},
{
'rule': '%v>=10',
'format': 'L%v',
},
],
'item': {
'offsetY': "-20"
}
},
'scale-y': {
'offset-end': '69%',
'values': '-2:2:2'
},
'scale-y-2': {
'placement': 'default',
'blended': 'true',
'offset-start': '33%',
'offset-end': '35%',
'values': '-2:2:2',
},
'scale-y-3': {
'placement': 'default',
'blended': 'true',
'offset-start': '67%',
'values': '-2:2:2'
},
'series': [{
'scales': 'scale-x,scale-y',
'values': model['org_values']
},
{ 'scales': 'scale-x,scale-y-2',
'values': model['org_values']
},
{
'scales': 'scale-x,scale-y-3',
'values': model['org_values']
}
],
'plot': {
'aspect': 'cone',
'rules': [
{
'rule': '%v >= model[crit_value]',
'backgroundColor': 'red',
},
{
'rule': '%v <= -1.5',
'backgroundColor': 'red',
},
{
'rule': '%v >= -1.5 && %v <= 1.5',
'backgroundColor': 'grey'
}]
}
}
return conf
def run(get_parameters):
model = algorithm()
return describeChartInJson(model)
谁能告诉我为什么这个规则('rule': '%v>= model[crit_value]')不被识别?从我所理解的模型[crit_value]是返回一个浮点值,并将其与%v,一个浮点值进行比较。当我尝试这个('rule': '%v'>= float (model['crit_value'])时,我得到了'str'和'float'实例之间不支持的错误'>='
规则('rule': '%v >= model[crit_value]')
不工作,因为它是字符串。您需要发送model['crit_value']
的值,而不是字符串。
试试('rule': '%v >= ' + model['crit_value'])
。