Ray*_*Jia 1 java jasper-reports jfreechart dynamic-jasper
我正在尝试设计带有条形图的报告,在其中我需要添加一个阈值。我尝试过使用多轴图表,其中不同轴上的比例始终不同。
还有其他解决方案可在条形图中添加折线吗?
要在条形图上画一条线,请将ValueMarker添加到CategoryPlot。
在jasper报告中,这是通过添加JRChartCustomizer完成的
public class MyChartCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart jfchart, JRChart jrchart) {
CategoryPlot plot = (CategoryPlot) jfchart.getPlot();
//Set at what value you like the line, its color and size of stroke
ValueMarker vm = new ValueMarker(13000,Color.BLUE, new BasicStroke(2.0F));
//add marker to plot
plot.addRangeMarker(vm);
}
}
Run Code Online (Sandbox Code Playgroud)
在jrxml中,确保您的类在classpath中,并customizerClass
在chart标签上设置属性
public class MyChartCustomizer implements JRChartCustomizer {
@Override
public void customize(JFreeChart jfchart, JRChart jrchart) {
CategoryPlot plot = (CategoryPlot) jfchart.getPlot();
//Set at what value you like the line, its color and size of stroke
ValueMarker vm = new ValueMarker(13000,Color.BLUE, new BasicStroke(2.0F));
//add marker to plot
plot.addRangeMarker(vm);
}
}
Run Code Online (Sandbox Code Playgroud)
如果使用动态报告,则可以直接在代码中添加它
chart.addCustomizer(new DRIChartCustomizer() {
private static final long serialVersionUID = 1L;
@Override
public void customize(JFreeChart chart, ReportParameters arg1) {
CategoryPlot plot = (CategoryPlot) jfchart.getPlot();
ValueMarker vm = new ValueMarker(13000,Color.BLUE, new BasicStroke(2.0F));
plot.addRangeMarker(vm);
}
});
Run Code Online (Sandbox Code Playgroud)
如果您正在使用dynamic-jasper setCustomizerClass
(如在jrxml中)
DJBarChartBuilder().setCustomizerClass("MyChartCustomizer");
Run Code Online (Sandbox Code Playgroud)
结果示例
注意:在示例中不使用包名称,如果MyChartCustomizer
在包中,则需要在setCustomizerClass
示例中指出完整的包名称"my.package.MyChartCustomizer"
归档时间: |
|
查看次数: |
1716 次 |
最近记录: |