Charts 加热条,文本的动态位置偏移

Charts 加热条,文本的动态位置偏移,charts,jasper-reports,heatmap,Charts,Jasper Reports,Heatmap,我想在报告中插入一个新列,以图形方式显示“指针”,显示0%-100%范围内的位置,如下所示: 我正在寻找想法请 我的想法 使用图形(彩虹0%-100%在每个细节栏)。 使用像素偏移(某种程度上是??),我只是放置了一个过大的“|”类型。因此,如果0%-100%是200px,这意味着以50%显示指针,我将偏移100px类型 我发现并实施的最简单/最直接的选项: <image scaleImage="RetainShape" onErrorType="Blank"> <r

我想在报告中插入一个新列,以图形方式显示“指针”,显示0%-100%范围内的位置,如下所示:

我正在寻找想法请

我的想法

使用图形(彩虹0%-100%在每个细节栏)。
使用像素偏移(某种程度上是??),我只是放置了一个过大的“|”类型。因此,如果0%-100%是200px,这意味着以50%显示指针,我将偏移100px类型

我发现并实施的最简单/最直接的选项:

<image scaleImage="RetainShape" onErrorType="Blank">
    <reportElement x="575" y="1" width="100" height="13" uuid="7cf54aff-65ac-40e5-8dc9-7f95d6f34d49"/>
        <imageExpression>
        <![CDATA[net.sf.jasperreports.renderers.BatikRenderer.getInstanceFromText("
        <svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"100\" height=\"13\" viewBox=\"0 0 100 13\">
            <defs>
            <linearGradient id=\"linear-gradient\" x1=\"-176.88\" y1=\"316.13\" x2=\"-150.45\" y2=\"316.13\" gradientTransform=\"matrix(3.78, 0, 0, -3.78, 689.01, 1202.56)\" gradientUnits=\"userSpaceOnUse\">
            <stop offset=\"0\" stop-color=\"green\"/>
            <stop offset=\"1\" stop-color=\"green\" stop-opacity=\"0\"/>
            </linearGradient>
            </defs>
            <path d=\"M0,1.26H100v10.4H0Z\" style=\"fill: url(#linear-gradient)\"/>
            <path d=\"M" + !!! OFFSET CALCULATION !!! + ",0V13\" style=\"fill: none;stroke: #000\"/>
        </svg>
        ")]]></imageExpression>
</image>

结果:


另一种可能性是创建一个新的应用程序。基于JFreeChart,因此您可以更改的外观和感觉,例如。看:好的。我可以与Adobe Illustrator一起工作,但我不知道如何操作针!(我示例中的黑条)通过java(iText)?我已经在用“logawie iText(PDF Stamper)”通过java进行操作了——而且我猜ChartCustomizer(我已经在其他报告中使用了这些工具)在一个可能有1000行的报告中不是一个选项——每个都包含一个需要运行Customizer的图表,这很好也很简单。尝试将
\“
替换为