我正在尝试消除 TimeSeriesChart 中 XYBarRenderer 上的条形之间的间隙。也就是说,我想在bar的前后都没有数据的时候展开bar的时间。是否可以?我将非常感谢您的帮助。
这是我的代码:
protected JFreeChart criarChart(XYDataset dataset){
JFreeChart chart;
chart = ChartFactory.createTimeSeriesChart(
this.getTitulo(), //titulo
this.getEixoX(), //nome do eixo-x
this.getEixoY(), //nome do eixo-y
dataset, //dados
true, //criar legenda?
true, //criar tooltips?
false); //criar URLs?
chart.setBackgroundPaint(Color.white);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setOrientation(PlotOrientation.VERTICAL);
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);
plot.getRenderer().setSeriesPaint(0, Color.red);
plot.setRenderer(new ClusteredXYBarRenderer() {
@Override
public Paint getItemPaint(int series, int item) {
XYDataset dataset = getPlot().getDataset();
if (dataset.getYValue(series, item) >= 0.0) {
return Color.green;
}
else {
return Color.red;
}
}
}
);
XYItemRenderer renderer = plot.getRenderer();
if(renderer instanceof XYBarRenderer){
XYBarRenderer r = (XYBarRenderer)renderer;
r.setBarPainter(new StandardXYBarPainter());
r.setMargin(-20.0);
r.setShadowVisible(false);
}
//mostra o tooltip das barras do grafico
plot.getRenderer().setBaseToolTipGenerator(new StandardXYToolTipGenerator(
StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
new SimpleDateFormat("HH:mm"), new DecimalFormat("#0")));
DateAxis axis = (DateAxis) plot.getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
return chart;
}
我在某个地方看到了更改边距,所以我尝试使用:
r.setMargin(-20.0);
但没有用。