java - BIRT:复杂折线图

标签 java eclipse charts birt

我想画一个像这样的图表: enter image description here

我使用soap服务作为数据源。我打算使用一个数据结构。

<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>

但是我无法将birt的图表模板配置为如上图所示。

最佳答案

由于有两个 Y 轴,您需要对度量进行非规范化。如果您无法更改肥皂服务,在 BIRT 中执行此操作的一个简单方法是在数据集中创建三个计算列,每列代表一个度量:“水”、“天然气”、“电”。例如,在您的示例中,“waterValue”表达式为:

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

这样我们就得到了这些新列:

enter image description here

最后:

  • 通过启用“辅助轴”选项创建标准折线图
  • 使用“elecValue”列将系列 1 设置为第一个轴
  • 分别使用“gasValue”和“waterValue”列将系列 2 和系列 3 设置为辅助轴

其余的工作只是装饰性的:您实际上可以获得准确的预期输出

关于java - BIRT:复杂折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36218085/

相关文章:

java - Spring security ApplicationListener 不会被 AuthenticationSuccessEvent 调用

java - Spring 批处理 - 重新启动使用 TaskExecutor 的失败作业

android - 在 Android ADT r21.1 新 Activity 向导中禁用 "Finish"按钮

r - 根据长数据上 id 变量的值(与行号无关)为 ggplot 中的特定标签着色

java - 如何从 Android studio 打开相关应用程序中的社交媒体链接?

java - 找出唯一数字的频率

java - 我的程序在 Eclipse 中运行,但不是作为可执行 jar 运行。 NoClassDefFoundError、ClassNotFoundException

java - jaxws-rt 2.2.10 的依赖项不适用于 Eclipse Neon

python - 在 Excel 中使用 xlsxwriter 创建图表,该图表不会随 Python 中的单元格移动或调整大小

c# - 链接到图表或调度控件的示例