iReport在x轴上显示太多标签

时间:2012-05-24 13:37:44

标签: jasper-reports ireport

早上好!我遇到了Jaspersoft iReport 4.5.0的问题,我希望得到一些帮助。基本上,当我显示xy折线图时,它试图在x轴上为每个数据点添加一个标签。我有近200个数据点,所以这看起来只是一条实线,即使我调整了刻度标签的旋转或其他任何内容。

我知道对这个问题的一般回答是使用时间序列图表。这通常会起作用,但在我的实例中,我使用的是多轴图表,其中相反的轴是条形图。由于条形图没有时间序列变化,因此iReport不允许我将条形图与时间序列图表混合,迫使我使用xy折线图。

我有什么方法可以吃蛋糕并吃掉它吗?有些方法我可以过滤掉一些标签?或者可能限制可以显示的标签数量,分布在x轴上?我还没有在互联网上找到明确的答案!

提前致谢! - 伊恩

编辑:这是我要修改的多轴图表之一的jrxml:

<multiAxisChart>
    <chart evaluationTime="Report" hyperlinkType="LocalAnchor">
        <reportElement x="42" y="441" width="440" height="292"/>
        <chartTitle position="Top">
            <titleExpression><![CDATA["CICS Elapsed"]]></titleExpression>
        </chartTitle>
        <chartSubtitle/>
        <chartLegend/>
        <anchorNameExpression><![CDATA["CICS Elapsed Small"]]></anchorNameExpression>
        <hyperlinkAnchorExpression><![CDATA["CICS Elapsed Big"]]></hyperlinkAnchorExpression>
        <hyperlinkTooltipExpression><![CDATA["Click to Enlarge"]]></hyperlinkTooltipExpression>
    </chart>
    <multiAxisPlot>
        <plot/>
        <axis position="leftOrTop">
            <lineChart>
                <chart>
                    <reportElement x="0" y="0" width="0" height="0" backcolor="#FFFFFF"/>
                    <chartTitle position="Top" color="#000000">
                        <titleExpression><![CDATA["CICS Elapsed"]]></titleExpression>
                    </chartTitle>
                    <chartSubtitle color="#000000"/>
                    <chartLegend textColor="#000000" backgroundColor="#FFFFFF"/>
                </chart>
                <categoryDataset>
                    <dataset>
                        <datasetRun subDataset="wmprod_cics"/>
                    </dataset>
                    <categorySeries>
                        <seriesExpression><![CDATA["Cpu Time"]]></seriesExpression>
                        <categoryExpression><![CDATA[$F{TIMESTAMP}]]></categoryExpression>
                        <valueExpression><![CDATA[$F{ELAPSTIME}]]></valueExpression>
                    </categorySeries>
                </categoryDataset>
                <linePlot isShowShapes="false">
                    <plot/>
                    <categoryAxisLabelExpression><![CDATA["Date/Time"]]></categoryAxisLabelExpression>
                    <valueAxisLabelExpression><![CDATA["Avg Elapsed Time (ms)"]]></valueAxisLabelExpression>
                </linePlot>
            </lineChart>
        </axis>
        <axis position="rightOrBottom">
            <barChart>
                <chart>
                    <reportElement x="0" y="0" width="0" height="0" backcolor="#FFFFFF"/>
                    <chartTitle position="Top" color="#000000">
                        <titleExpression><![CDATA["CICS Elapsed"]]></titleExpression>
                    </chartTitle>
                    <chartSubtitle color="#000000"/>
                    <chartLegend textColor="#000000" backgroundColor="#FFFFFF"/>
                </chart>
                <categoryDataset>
                    <dataset>
                        <datasetRun subDataset="wmprod_cics"/>
                    </dataset>
                    <categorySeries>
                        <seriesExpression><![CDATA["Volume (transactions)"]]></seriesExpression>
                        <categoryExpression><![CDATA[$F{TIMESTAMP}]]></categoryExpression>
                        <valueExpression><![CDATA[$F{TRANSCOMPL}]]></valueExpression>
                    </categorySeries>
                </categoryDataset>
                <barPlot>
                    <plot/>
                    <itemLabel/>
                    <valueAxisLabelExpression><![CDATA["Volume (transactions)"]]></valueAxisLabelExpression>
                </barPlot>
            </barChart>
        </axis>
    </multiAxisPlot>
</multiAxisChart>

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我认为答案是这样的:

<chart>
  <reportElement x="0" y="0" width="802" height="215">
    <property name="net.sf.jasperreports.chart.domain.axis.tick.interval" value="1"/>
  </reportElement>

根据需要设置滴答间隔。注意:我的图表是散点图。未经测试的折线图。