java JFreeChart 问题,X轴显示的是时间,但是数据太多,挤成一团,如何让X轴只显示10个时间 30
展开全部
调整前(默认1年单位)
调整后(5年单位)
取得XYPlot,然后在DomainAxis里可以设置刻度。
(找了1小时。。。求采纳,没有功劳也有苦劳啊)
下面的代码是5年单位显示。
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.axis.DateTickUnit;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Month;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
public class TimeSeriesChartSample {
public static void main(String[] args) throws IOException {
// Create Data
TimeSeries s1 = new TimeSeries("XXXX");
for (int i = 0; i < 10; i++) {
int year = 2000 + i;
s1.add(new Month(1, year), 101.8);
s1.add(new Month(2, year), 104.8);
s1.add(new Month(3, year), 103.3);
s1.add(new Month(4, year), 105.8);
s1.add(new Month(5, year), 110.6);
s1.add(new Month(6, year), 120.8);
s1.add(new Month(7, year), 115.3);
s1.add(new Month(8, year), 130.9);
s1.add(new Month(9, year), 131.7);
s1.add(new Month(10, year), 140.2);
s1.add(new Month(11, year), 141.8);
s1.add(new Month(12, year), 160.6);
}
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(s1);
// Create JFreeChart
JFreeChart chart = ChartFactory.createTimeSeriesChart("TITLE", "TIME AXIS LABEL",
"VALUE AXIS LABEL", dataset, true, true, false);
// 这里是关键
XYPlot xyplot = (XYPlot) chart.getPlot();
DateAxis domainAxis = (DateAxis) xyplot.getDomainAxis(); //x轴设置
domainAxis.setTickUnit(new DateTickUnit(DateTickUnit.YEAR, 5, new SimpleDateFormat("yyyy")));
// Output
File outputFile = new File("SampleTimeSeriesChart.png");
ChartUtilities.saveChartAsPNG(outputFile, chart, 500, 500);
}
}
推荐这里,Jfreechart大全:
2015-04-08
展开全部
数据抽取一些出来,即是进步大一些
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询