📄 linechart.java
字号:
package com.briup.chart;
import java.awt.Color;
import java.awt.Font;
import java.awt.GradientPaint;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;
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.plot.XYPlot;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.Hour;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import com.briup.dao.bean.Nasday;
public class LineChart {
public void createChart(String type, OutputStream os, List lineValues,
String title, String subtitle, String xTitle, String yTitle,
int width, int height) throws IOException {
TimeSeriesCollection dataset = getTimeSeriesCollection(type, lineValues);
JFreeChart chart = ChartFactory.createTimeSeriesChart(title, xTitle,
yTitle, dataset, false, true, false);
TextTitle st = new TextTitle(subtitle, new Font("宋体", Font.BOLD, 12));
chart.addSubtitle(st);
chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000,
Color.blue));
XYPlot xyplot = (XYPlot) chart.getPlot();
DateAxis dateAxis = (DateAxis) xyplot.getDomainAxis();
dateAxis.setDateFormatOverride(new SimpleDateFormat("H"));
dateAxis.setAutoRange(false);
ChartUtilities.writeChartAsJPEG(os, 1.0f, chart, width, height, null);
}
private TimeSeriesCollection getTimeSeriesCollection(String type,
List lineValues) {
TimeSeries ts = new TimeSeries("NAS日统计", Hour.class);
Calendar cal = Calendar.getInstance();
Iterator iter = lineValues.iterator();
if (type.equals("num")) {
while (iter.hasNext()) {
Nasday nasday = (Nasday) iter.next();
cal.setTime(nasday.getOndate());
Hour current = new Hour(cal.get(Calendar.HOUR_OF_DAY), cal
.get(Calendar.DAY_OF_MONTH),
cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR));
ts.add(current, nasday.getOnlineUsers());
}
} else if (type.equals("flux")) {
while (iter.hasNext()) {
Nasday nasday = (Nasday) iter.next();
cal.setTime(nasday.getOndate());
Hour current = new Hour(cal.get(Calendar.HOUR_OF_DAY), cal
.get(Calendar.DAY_OF_MONTH),
cal.get(Calendar.MONTH) + 1, cal.get(Calendar.YEAR));
ts.add(current, nasday.getFlux());
}
}
TimeSeriesCollection dataset = new TimeSeriesCollection(ts);
return dataset;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -