Strange behaviour on chart with multiple timeseries,

Hello All,

I experience strange behaviour on chart with multiple timeseries, possibly an issue/bug.
My chart have several series, in the exemple 9 different series.
The Consumption series is the grand total.
This total can be composed of 2 different subseries:

  • “Heures pleines/Heures creuses” subseries.
  • Or Bleue HP, Blanc HP, Red HP, Bleue HC, Blanc HC, Red HC subseries.

The subseries will depends on the date, where different tarif applie. Sometime you will only have value for the 1st subseries, or sometime for the 2nd subseries.

When everything is ok, the grand total should be equals to the subseries sums, like in the graph bellow.

Or this one, with the 2nd tarif.

But when I set the graph to cover a period with a tarif change, I’ve get the following result.

The tariff change occurs on 9 june.
Note that data are correct :

total cosumption = heure pleines consumption + heures creuses consumption
36,56 = 28,49 + 8,07

But notes that the start of the bar on y axis is not zero based, like if the other series that at this point have no value take some places on the y axis ?

My chart code is as follow.
Do I miss something obvious ?

Thanks,

Laurent.

config:
  future: false
  label: Linky Melody Conso Journalière2
  order: "9999999"
  period: 6M
  sidebar: true
slots:
  dataZoom:
    - component: oh-chart-datazoom
      config:
        type: inside
  grid:
    - component: oh-chart-grid
      config:
        containLabel: true
        includeLabels: true
        show: true
  legend:
    - component: oh-chart-legend
      config:
        bottom: 3
        orient: horizontal
        show: true
        type: scroll
  series:
    - component: oh-time-series
      config:
        barGap: -0%
        gridIndex: 0
        item: Linky_Melody_Daily_Conso_Day
        label:
          formatter: =v=>Number.parseFloat(v.data[1]).toFixed(2) + " Kwh"
          position: top
          show: true
        name: Consumption
        noBoundary: true
        noItemState: true
        service: inmemory
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#1010ff"
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Pleines_Bleue
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Bleue HP
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#f0f0f0"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Pleines_Blanc
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Blanc HP
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#ff7070"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Creuses_Rouge
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Rouge HC
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#d0d0d0"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Creuses_Blanc
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Blanc HC
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#7070ff"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Creuses_Bleue
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Bleue HC
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#ff1010"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Pleines_Rouge
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Rouge HP
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#00ff00"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Pleines
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Heures pleines
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0
    - component: oh-time-series
      config:
        color: "#70ff70"
        emphasis:
          disabled: true
        gridIndex: 0
        item: Linky_Melody_Daily_Supplier_Conso_Day_Heures_Creuses
        label:
          formatter: =v=>v.data[1]!="0"?Number.parseFloat(v.data[1]).toFixed(2) + "
            Kwh":''
          position: inside
          show: true
        name: Heures creuses
        noBoundary: true
        noItemState: true
        service: inmemory
        stack: total
        type: bar
        xAxisIndex: 0
        yAxisIndex: 0                
  tooltip:
    - component: oh-chart-tooltip
      config:
        confine: true
        orient: vertical
        show: true
        smartFormatter: true
  visualMap: []
  xAxis:
    - component: oh-time-axis
      config:
        gridIndex: 0
        nameLocation: center
        splitNumber: 10
  yAxis:
    - component: oh-value-axis
      config:
        gridIndex: 0
        max: "150"
        min: "0"
        name: kWh
        nameLocation: center

This is pretty clearly a bug. The only problem is figuring out where the bug is. My gut feeling is that this is an eCharts bug and not OH, but I have very little evidence to support that hypothesis.

I can try to export my data to json, and try to reproduce the graph directly with echart.
That will potentially help to narrow the issue.

But I see other strange thing this last days.
I have some graph that display correctly at first, but when adding the toolbox to the graph, some value in timeseries just disapear and not displayed.

Laurent.

This topic was automatically closed 41 days after the last reply. New replies are no longer allowed.