当前位置: 首页 > 知识库问答 >
问题:

如何避免使用折线图-贾斯珀报告“折线”?

萧晔
2023-03-14

我使用的是Jaspersoft Studio版本6.3.0.final和JasperReports库版本6.3.0。我正在创建一个具有不同系列和类别值的折线图。我的问题是,在绘制图表时,我观察到,如果一个类别中没有某个特定系列的值,则线条会断开,并从下一个数据点重新开始。

是否有任何方法可以连接特定序列中的所有点,使其成为一条连续的单线,而不是虚线和点?

我用一个图像作为我得到和想要做的事情的示例,并用我的.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="chart_subreport" pageWidth="842" pageHeight="595" columnWidth="842" leftMargin="0" rightMargin="0" topMargin="10" bottomMargin="10"> 
<style name="table 1_TH" mode="Opaque" backcolor="#646464" forecolor="#FFFFFF" >
    <box>
        <pen lineColor="#969696" lineWidth="1.0"/>
    </box>
</style>    

<field name="TimePoints" class="java.util.Date"/>
<field name="LongAxis" class="java.lang.Double"/>
<field name="Lesion" class="java.lang.String"/>

<detail>
 <band height="400" >
                <printWhenExpression><![CDATA[$V{REPORT_COUNT}==1]]></printWhenExpression>                    
        <lineChart>
            <chart>
                <reportElement  style="table 1_TH" x="10" y="0" width="800" height="400"/>                  
                <chartTitle>
                    <titleExpression><![CDATA["Lesion's evolution"]]></titleExpression>
                </chartTitle>                                                       
            </chart>                
            <categoryDataset>
                <categorySeries>
                <!-- This is the lesions you want to see on charts-->
                    <seriesExpression><![CDATA[$F{Lesion}]]></seriesExpression>
                    <!--You can change the format date here -->
                    <categoryExpression><![CDATA[(new SimpleDateFormat("MMM d, yyyy")).format($F{TimePoints})]]></categoryExpression>
                    <valueExpression><![CDATA[$F{LongAxis}]]></valueExpression>
                </categorySeries>
            </categoryDataset>                                          
                <linePlot isShowLines="true">
                <plot backcolor="#323232"  />
                <categoryAxisFormat>
                    <axisFormat/>
                </categoryAxisFormat>
                <valueAxisFormat>
                  <axisFormat >
                    <labelFont>
                        <font fontName="Arial" size="10"/>
                    </labelFont>
                </axisFormat>
                </valueAxisFormat>
            </linePlot>             
        </lineChart>    
    </band>
</detail>
</jasperReport>

共有1个答案

白翔
2023-03-14

我实现了我想要的东西,我刚刚改变了图表的类型,现在我使用“时间系列图表”。

<style name="table 1_TH" mode="Opaque" backcolor="#646464" forecolor="#FFFFFF" >
    <box>
        <pen lineColor="#969696" lineWidth="1.0"/>
    </box>
    </style>    
<queryString>
    <![CDATA[]]>
</queryString>

<field name="TimePoints" class="java.util.Date"/>
<field name="LongAxis" class="java.lang.Double"/>
<field name="Lesion" class="java.lang.String"/>
<field name ="nbInstance" class="java.lang.Integer"/>

<detail>
 <band height="400" >
                <printWhenExpression><![CDATA[$V{REPORT_COUNT}==$F{nbInstance}]]></printWhenExpression>               
        <timeSeriesChart>
            <chart>
                <reportElement  style="table 1_TH" x="10" y="0" width="800" height="400"/>                  
                <chartTitle>
                    <titleExpression><![CDATA["Lesion's evolution"]]></titleExpression>
                </chartTitle>                                                       
            </chart>            

            <timeSeriesDataset>

                <timeSeries>
                    <seriesExpression><![CDATA[$F{Lesion}]]></seriesExpression>
                    <timePeriodExpression> <![CDATA[$F{TimePoints}]]></timePeriodExpression>
                        <valueExpression><![CDATA[$F{LongAxis}]]></valueExpression>
                </timeSeries>
            </timeSeriesDataset>                
                <timeSeriesPlot >
                <plot backcolor="#323232"  />
                <timeAxisLabelExpression/>                  
                <timeAxisFormat>
                    <axisFormat/>
                </timeAxisFormat>
                <valueAxisLabelExpression/>
                <valueAxisFormat>
                    <axisFormat/>
                </valueAxisFormat>
            </timeSeriesPlot>               
        </timeSeriesChart>  
    </band>
</detail>
 类似资料:
  • 我正在与Jaspersoft Studio开发一些报告 我有一个web应用程序,它应该接受REST查询,并将它们转换为编译的报告 所以我包含了一些JasperReports jar: < li>groovy-all-2.0.1.jar < li>iText-2.1.7.js2.jar < li>jasperreports-5.2.0.jar 问题是当我编译我的报告并从Jaspersoft Stud

  • 我正在一个使用贾斯珀报告的应用程序工作。它与莫哈拉一起使用Primefaces,并部署在码头。当我在本地部署应用时,它确实可以正常工作。但是当我在赫鲁库部署时,它不起作用。 当我把它部署到赫鲁库时,我得到: HTTP错误500 访问/clients.pdf时出现问题。原因: java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStre

  • 基本折线图 <template> <ve-line :data="chartData" :settings="chartSettings"></ve-line> </template> <script> export default { data () { this.chartSettings = {} return { chartData: { columns: ['日期',

  • 实时显示传感器数据。 用法 Your browser does not support the video tag. 案例:数据变化趋势 功能:显示数字改变的规律

  • 主要内容:绘制单条折线,绘制多条折线图折线图(line chart)是我们日常工作、学习中经常使用的一种图表,它可以直观的反映数据的变化趋势。与绘制柱状图、饼状图等图形不同,Matplotlib 并没有直接提供绘制折线图的函数,因此本节着重讲解如何绘制一幅折线图。 绘制单条折线 下面示例是关于 小牛知识库用户活跃度的折线图: 显示结果如下: 绘制多条折线图 当学习完如何绘制单条折线的绘制后,再绘制多条折线也变的容易,只要准备好绘制多条

  • 折线图可以比较不同时期的数据。使用一系列点创建折线图。这些点代表每个时期的度量值。 度量和维度采用折线图中图表区域的两个轴。每次观察的这对值成为一个点。在加入所有这些点之后,将成为显示维度和度量之间变化的线。 创建折线图的过程将在下面逐步显示: 例如,考虑一个数据源:Sample-Superstore及其维度和度量。 第1步:选择一个维度和一个度量来创建简单的折线图。 1)将维度订单日期拖到列架中