Votre premier problème est de passer une source de données à la carte, si vous utilisez principale source de données, vous devez mettre le tableau dans la bande summary
, puisque votre source de données n'est pas prêt dans title
bande et est une itération sur la bande detail
, par conséquent, il ne fonctionnera pas correctement (note: si vous utilisez votre source de données aussi dans la bande de détail, il doit être un JRRewindableDataSource).
Si vous avez besoin de l'utiliser dans d'autres bandes alors summary
bande je vous suggère de créer un sous-rapport et de l'inclure dans la source de données de passage de bande désirée ou la connexion au sous-rapport.
Le diagramme de dispersion est réalisée à l'aide d'un <scatterChart>
et <xyDataset>
, de mettre en série et x, les données y vous utilisez la balise <xySeries>
En iReport, cliquez sur le bouton droit graphique, sélectionnez Tableau de données, sélectionnez onglet Détails et ajouter des séries XY
<xySeries>
<seriesExpression><![CDATA[$F{Series}]]></seriesExpression>
<xValueExpression><![CDATA[$F{X}]]></xValueExpression>
<yValueExpression><![CDATA[$F{Y}]]></yValueExpression>
</xySeries>
Si vous avez seulement 1 série, vous pouvez passer une variable fictive dans seriesExpression
<seriesExpression><![CDATA["dummy"]]></seriesExpression>
Exemple complet jrxml
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="ScatterPlot" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ebc92eb9-c769-4888-98de-b1d60670725c">
<queryString>
<![CDATA[]]>
</queryString>
<field name="Series" class="java.lang.String"/>
<field name="X" class="java.lang.Double"/>
<field name="Y" class="java.lang.Double"/>
<columnHeader>
<band height="20">
<staticText>
<reportElement x="100" y="0" width="100" height="20" uuid="978a0093-4e67-40e3-baee-8340ccc23b8f"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[X]]></text>
</staticText>
<staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="b97c9f78-ad74-4d9f-af46-ee3fc3e5351f"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Series]]></text>
</staticText>
<staticText>
<reportElement x="200" y="0" width="100" height="20" uuid="e50dab9b-c8f7-4cc0-a8f7-3ca4438c746b"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[Y]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20">
<textField pattern="###0.00">
<reportElement x="100" y="0" width="100" height="20" uuid="8d365885-a6f8-40be-8ad0-012e45a37543"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{X}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="0" width="100" height="20" uuid="f08b3a38-8130-4609-b70d-b10b9d8d648b"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{Series}]]></textFieldExpression>
</textField>
<textField pattern="###0.00">
<reportElement x="200" y="0" width="100" height="20" uuid="83638866-5bd1-4ee4-ac1a-455c406f3621"/>
<box topPadding="2" leftPadding="2" bottomPadding="2" rightPadding="2">
<pen lineWidth="0.5"/>
<topPen lineWidth="0.5"/>
<leftPen lineWidth="0.5"/>
<bottomPen lineWidth="0.5"/>
<rightPen lineWidth="0.5"/>
</box>
<textElement textAlignment="Right" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{Y}]]></textFieldExpression>
</textField>
</band>
</detail>
<summary>
<band height="257" splitType="Stretch">
<scatterChart>
<chart>
<reportElement x="4" y="16" width="280" height="237" uuid="b9968e83-13aa-48fc-acf5-3d646f45f28d"/>
<chartTitle/>
<chartSubtitle/>
<chartLegend/>
</chart>
<xyDataset>
<xySeries>
<seriesExpression><![CDATA[$F{Series}]]></seriesExpression>
<xValueExpression><![CDATA[$F{X}]]></xValueExpression>
<yValueExpression><![CDATA[$F{Y}]]></yValueExpression>
</xySeries>
</xyDataset>
<scatterPlot isShowLines="false" isShowShapes="true">
<plot/>
<xAxisFormat>
<axisFormat/>
</xAxisFormat>
<yAxisFormat>
<axisFormat/>
</yAxisFormat>
</scatterPlot>
</scatterChart>
</band>
</summary>
</jasperReport>
données csv exemple
+--------+-----+-----+
| Series | X | Y |
+--------+-----+-----+
| A | 1.2 | 0.3 |
| A | 0.5 | 0.2 |
| B | 0.7 | 0.6 |
| B | 0.1 | 0.5 |
+--------+-----+-----+
Résultat
Pour configurer votre carte utiliser les paramètres de propriétés sur le graphique, si vous avez besoin de configuration spéciale que vous ne pouvez pas obtenir avec les propriétés que vous pouvez mettre en œuvre un ChartCustomizer
voir par exemple
How to put benchmark line on barchart?
Qu'est-ce qui ne va pas avec la question pour l'ajout de votes serrés? –
FYI, iReport est obsolète depuis une longue période de temps –
'Comment tracer cela avec outil ireport?' - Il est question trop large, n'est-ce pas? –