日期:2014-05-18  浏览次数:21489 次

jfreechart横坐标太密,有没有办法只显示部分横坐标?
jfreechart显示非时间序列的折线图或柱状图时,如果点太多,横坐标无法显示,只能看到一排密密的小点。
有没有办法只显示部分横坐标,比如每隔5个点显示一个横坐标,纵坐标不变。

------解决方案--------------------
可以斜着显示
------解决方案--------------------
XYSeriesCollection dataset = new XYSeriesCollection();

XYSeries s1 = new XYSeries( "日交易量 ");
for(int i=1; i <=48; i++){
System.out.println(daily[i-1]);
s1.add(i,daily[i-1]);
}

XYSeries s2 = new XYSeries( "平均日交易量 ");
for(int j=1; j <=48; j++){
s2.add(j,ave[j-1]);
}

dataset.addSeries(s1);
dataset.addSeries(s2);


JFreeChart chart = ChartFactory.createTimeSeriesChart( "交易系统访问量分时段统计 ", " ", "交易量 ",dataset,true,true,false);


chart.setBackgroundPaint(Color.white);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setDomainGridlinePaint(Color.white);
plot.setRangeGridlinePaint(Color.white);
plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
plot.setDomainCrosshairVisible(true);
plot.setRangeCrosshairVisible(true);

XYItemRenderer rr = plot.getRenderer();
if (rr instanceof XYLineAndShapeRenderer) {
XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) rr;
renderer.setBaseShapesVisible (true);
renderer.setBaseShapesFilled(true);
}
//plot.setDomainAxis(new NumberAxis());

NumberAxis axis = new NumberAxis( "时间段 ");
axis.setRange(1,48);
axis.setTickUnit(new NumberTickUnit(1));//貌似关键是这部分
plot.setDomainAxis(axis);

前段时间用到过一点,但是没仔细研究,楼主参考一下吧
------解决方案--------------------
帮你顶