Untitled

 avatar
unknown
plain_text
a year ago
2.6 kB
6
Indexable
def after_task(mb):
    echart = '''
option = {
  title: {
    text: 'Distribution of Electricity',
    subtext: 'Fake Data'
  },
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross'
    }
  },
  toolbox: {
    show: true,
    feature: {
      saveAsImage: {}
    }
  },
  xAxis: {
    type: 'category',
    boundaryGap: false,
    // prettier-ignore
    data: %s
  },
  yAxis: {
    type: 'value',
    axisLabel: {
      formatter: '{value} W'
    },
    axisPointer: {
      snap: true
    }
  },
  visualMap: {
    show: false,
    dimension: 0,
    pieces: [
      {
        lte: 6,
        color: 'green'
      },
      {
        gt: 6,
        lte: 8,
        color: 'red'
      },
      {
        gt: 8,
        lte: 14,
        color: 'green'
      },
      {
        gt: 14,
        lte: 17,
        color: 'red'
      },
      {
        gt: 17,
        color: 'green'
      }
    ]
  },
  series: [
    {
      name: 'Electricity',
      type: 'line',
      smooth: true,
      // prettier-ignore
      data: %s,
      markArea: {
        itemStyle: {
          color: 'rgba(255, 173, 177, 0.4)'
        },
        data: [
          [
            {
              name: 'Evening Peak',
              xAxis: %s
            },
            {
              xAxis: %s
            }
          ]
        ]
      }
    }
  ]
};
'''
    from datetime import datetime

    source_data = mb.get('task2')
    predict_data = mb.get('task3')

    timeList = []
    dataList = []
    lastTimestamp = 0
    predict_start_time = 0
    predict_end_time = 0
    for value in source_data['data']['result'][0]['values']:
        timestamp = int(value[0])
        timeStr = datetime.fromtimestamp(timestamp).strftime('%H:%M')
        timeList.append(timeStr)
        dataStr = value[1].strip('"')
        dataList.append(float(dataStr))
        lastTimestamp = timestamp
    
    predict_start_time = lastTimestamp + 300
    predict_start_time_str = datetime.fromtimestamp(predict_start_time).strftime('%H:%M')
    for value in predict_data['result']:
        lastTimestamp += 300
        timestamp = lastTimestamp
        timeStr = datetime.fromtimestamp(timestamp).strftime('%H:%M')
        timeList.append(timeStr)
        dataStr = value[1].strip('"')
        dataList.append(float(dataStr))
    predict_end_time = lastTimestamp
    predict_end_time_str = datetime.fromtimestamp(predict_end_time).strftime('%H:%M')

    return echart % (str(timeList), str(dataList), predict_start_time_str, predict_end_time_str)
Editor is loading...
Leave a Comment