3

早上好!我在使用 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>
4

1 回答 1

2

我有同样的问题。我认为答案是这样的:

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

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

于 2013-01-07T16:00:47.873 回答