Python, Zingchart

#python #json #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  amp;amp; %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 amp;amp; %v <= 1.5',
              'backgroundColor': 'grey'
            }]
        }
    }
    return conf

def run(get_parameters):

    model = algorithm()
    return describeChartInJson(model)
 

Может ли кто-нибудь сказать мне, почему это правило («правило»: «%v >= модель[значение критерия]») не распознается?
Из того , что я понял, модель[crit_value] возвращает значение с плавающей точкой и сравнивает его с %v, значением с плавающей точкой.
Когда я попробовал это («правило»: «%v » > = float (модель [«значение критерия»]), я получаю ошибку «> > = » не поддерживается между экземплярами «str» и «float»

Ответ №1:

Правило ('rule': '%v >= model[crit_value]') не работает, потому что это строка. Вам нужно будет отправить значение model['crit_value'] , а не строку.

Попробуй ('rule': '%v >= ' model['crit_value']) вместо этого.

Комментарии:

1. Спасибо вам за ваш ответ. Это работает: «правило»: «%v >» str(модель[«значение критерия»])