【发布时间】:2016-06-09 12:13:40
【问题描述】:
【问题讨论】:
-
嗨,Santosh,您能发布到目前为止您尝试过的代码示例吗?这将使其他人更容易纠正/回答。
标签: java jasper-reports bar-chart jfreechart
【问题讨论】:
标签: java jasper-reports bar-chart jfreechart
要在 jasper 报告中自定义条形图,请创建一个扩展 JRChartCustomizer 的自定义程序类 (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);
}
将类添加到类路径并在 jrxml 中设置customizerClass 属性
<barChart>
<chart customizerClass="my.package.ChartCustomizer">
....
</chart>
...
</barChart>
【讨论】:
我们已经通过在自定义类中使用以下代码解决了这个问题
ValueMarker marker = new ValueMarker(30);
marker.setLabel("Average 30%");
marker.setPaint(Color.black);
plot.addRangeMarker(marker);
但是我们需要更改标签位置,目前它显示在行首。
【讨论】: