如何在条形图上放置基准线?
How to put benchmark line on barchart?
我们正在将 jfreechart 与 Jasper 报告一起使用,我们正在努力将基准线放在条形图上。
如何使用 jasper 报告实现这一点?
我们已经通过在自定义 class
中使用以下代码解决了这个问题
ValueMarker marker = new ValueMarker(30);
marker.setLabel("Average 30%");
marker.setPaint(Color.black);
plot.addRangeMarker(marker);
但是我们需要更改标签位置,目前它显示在行的开头。
要在 jasper 报告中自定义条形图,请创建扩展 JRChartCustomizer 的自定义程序 class (ChartCustomizer)。
public void customize(JFreeChart chart, ChartComponent chartComponent)
{
//get the ploy
CategoryPlot plot = (CategoryPlot) chart.getPlot();
//Now add your markers
ValueMarker vm = new ValueMarker(200); //200 is the position you like it to be
vm.setPaint(Color.RED);
vm.setStroke(new BasicStroke(1));
vm.setLabel("BeanchMark value"); //The label
vm.setLabelAnchor(RectangleAnchor.TOP);
vm.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
plot.addRangeMarker(vm);
}
将 class 添加到 classpath 并在 jrxml 中设置 customizerClass
属性
<barChart>
<chart customizerClass="my.package.ChartCustomizer">
....
</chart>
...
</barChart>
对于一条水平线,您可以使用提供的图表定制器:
转到图表 -> 属性 -> 图表(选项卡) -> 图表定制器
您可以在此处添加一个范围间隔标记,并使用所需值(在您的示例中为 35)配置起始值和结束值。
这样就可以根据需要在 35 垂直值中绘制一条水平线。
我们正在将 jfreechart 与 Jasper 报告一起使用,我们正在努力将基准线放在条形图上。
如何使用 jasper 报告实现这一点?
我们已经通过在自定义 class
中使用以下代码解决了这个问题ValueMarker marker = new ValueMarker(30);
marker.setLabel("Average 30%");
marker.setPaint(Color.black);
plot.addRangeMarker(marker);
但是我们需要更改标签位置,目前它显示在行的开头。
要在 jasper 报告中自定义条形图,请创建扩展 JRChartCustomizer 的自定义程序 class (ChartCustomizer)。
public void customize(JFreeChart chart, ChartComponent chartComponent)
{
//get the ploy
CategoryPlot plot = (CategoryPlot) chart.getPlot();
//Now add your markers
ValueMarker vm = new ValueMarker(200); //200 is the position you like it to be
vm.setPaint(Color.RED);
vm.setStroke(new BasicStroke(1));
vm.setLabel("BeanchMark value"); //The label
vm.setLabelAnchor(RectangleAnchor.TOP);
vm.setLabelTextAnchor(TextAnchor.BOTTOM_RIGHT);
plot.addRangeMarker(vm);
}
将 class 添加到 classpath 并在 jrxml 中设置 customizerClass
属性
<barChart>
<chart customizerClass="my.package.ChartCustomizer">
....
</chart>
...
</barChart>
对于一条水平线,您可以使用提供的图表定制器:
转到图表 -> 属性 -> 图表(选项卡) -> 图表定制器
您可以在此处添加一个范围间隔标记,并使用所需值(在您的示例中为 35)配置起始值和结束值。
这样就可以根据需要在 35 垂直值中绘制一条水平线。