Tri
Tri

Reputation: 161

BIRT: complex line chart

I want to draw a chart like this picture: enter image description here

I use soap service as data source. There is data structure I purpose to use.

<return>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>725072</powerValue>
           <xCategory>2015-12-10T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>679679</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-10T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>247</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-10T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>701065</powerValue>
           <xCategory>2015-12-11T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>653653</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-11T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>121</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-11T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>499024</powerValue>
           <xCategory>2015-12-12T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>477477</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-12T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>52</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-12T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>544024</powerValue>
           <xCategory>2015-12-13T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>522522</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-13T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>53</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-13T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>744066</powerValue>
           <xCategory>2015-12-14T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>699699</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-14T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>264</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-14T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>659054</powerValue>
           <xCategory>2015-12-15T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>614614</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-15T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>273</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-15T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>582055</powerValue>
           <xCategory>2015-12-16T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>534534</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-16T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>263</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-16T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>518052</powerValue>
           <xCategory>2015-12-17T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>473473</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-17T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>323</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-17T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>512031</powerValue>
           <xCategory>2015-12-18T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>476476</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-18T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>148</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-18T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>407020</powerValue>
           <xCategory>2015-12-19T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>383383</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-19T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>23</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-19T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>410020</powerValue>
           <xCategory>2015-12-20T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>386386</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-20T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>24</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-20T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>564054</powerValue>
           <xCategory>2015-12-21T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>508508</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-21T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>136</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-21T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>534062</powerValue>
           <xCategory>2015-12-22T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>492492</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-22T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>146</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-22T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>518065</powerValue>
           <xCategory>2015-12-23T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>473473</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-23T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>218</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-23T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>482021</powerValue>
           <xCategory>2015-12-24T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>450450</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-24T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>64</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-24T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>426018</powerValue>
           <xCategory>2015-12-25T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>402402</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-25T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>0</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-25T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>417019</powerValue>
           <xCategory>2015-12-26T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>394394</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-26T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>0</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-26T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>438020</powerValue>
           <xCategory>2015-12-27T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>415415</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-27T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>0</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-27T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>525022</powerValue>
           <xCategory>2015-12-28T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>496496</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-28T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>91</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-28T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>483023</powerValue>
           <xCategory>2015-12-29T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>457457</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-29T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>95</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-29T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>528024</powerValue>
           <xCategory>2015-12-30T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>499499</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-30T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>135</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-30T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <elecGroupName>Electricité</elecGroupName>
           <powerValue>460020</powerValue>
           <xCategory>2015-12-31T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>436436</capacityValue>
           <groupName>Eau</groupName>
           <xCategory>2015-12-31T00:00:00+07:00</xCategory>
        </labChartLst>
        <labChartLst>
           <capacityValue>14</capacityValue>
           <groupName>Gaz</groupName>
           <xCategory>2015-12-31T00:00:00+07:00</xCategory>
        </labChartLst>
     </return>

But I can't config birt's chart template to display as the picture above.

Upvotes: 1

Views: 277

Answers (1)

Dominique
Dominique

Reputation: 4342

Since there are two Y-axis you need to denormalize measures. If you can't change the soap service, an easy way to do it in BIRT would be to create three computed columns in the dataset, each column representing a measure: "Water", "Gas", "Electricity". For example in your sample, "waterValue" expression would be:

row["groupName"]=="Eau"?row["capacityValue"]:0

So that we end up with these new columns:

enter image description here

Finally:

  • create a standard line chart by enabling "secondary axis" option
  • set serie 1 to the first axis using "elecValue" column
  • set serie 2 and 3 to the secondary axis using "gasValue" and "waterValue" columns respectively

The rest of the work is just cosmetic: you can actually get exactly the expected output

Upvotes: 1

Related Questions