python - Python、Zingchart
问题描述
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]') 不被识别吗?据我了解, model[crit_value] 返回一个浮点值并将其与一个浮点值 %v 进行比较。当我尝试这个 ('rule': '%v' >= float (model['crit_value']) 我得到错误 '>=' not supported between 'str' and 'float'
解决方案
该规则('rule': '%v >= model[crit_value]')
不起作用,因为它是一个字符串。您将需要发送的值model['crit_value']
而不是字符串。
尝试('rule': '%v >= ' + model['crit_value'])
,而不是。