?? multiplechart.java
字號(hào):
package demo.chart;
import java.awt.Color;
import java.awt.Font;
import java.io.PrintWriter;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpSession;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartRenderingInfo;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.entity.StandardEntityCollection;
import org.jfree.chart.labels.StandardXYToolTipGenerator;
import org.jfree.chart.plot.DatasetRenderingOrder;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
import org.jfree.chart.renderer.xy.XYStepAreaRenderer;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.xy.XYDataset;
import org.jfree.ui.RectangleInsets;
public class MultipleChart {
private Font titleFont = new Font("黑體",Font.CENTER_BASELINE,18);
private XYDataset stepDataset;
private XYDataset lineDataset;
public MultipleChart() {
super();
}
public void setStepValue(XYDataset stepDataset) {
this.stepDataset = stepDataset;
}
public void setLineDataset(XYDataset lineDataset) {
this.lineDataset = lineDataset;
}
private JFreeChart createChart(XYDataset xydataset)
{
JFreeChart jfreechart = ChartFactory.createXYStepAreaChart("監(jiān)控設(shè)置",
"時(shí)刻",
"流量",
xydataset,
PlotOrientation.VERTICAL,
true,
true,
false);
XYPlot xyplot = jfreechart.getXYPlot();
DateAxis dateaxis = new DateAxis("時(shí)刻");
//設(shè)置圖兩邊空白尺寸
dateaxis.setLowerMargin(0.0D);
dateaxis.setUpperMargin(0.0D);
//X軸日期\時(shí)間格式
dateaxis.setDateFormatOverride(new SimpleDateFormat("HH"));
xyplot.setDomainAxis(dateaxis);
//設(shè)置軸線偏移
xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D));
//設(shè)置順序
xyplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
//區(qū)域上不標(biāo)注點(diǎn)
XYStepAreaRenderer xyarearenderer = (XYStepAreaRenderer)xyplot.getRenderer();
xyarearenderer.setPlotShapes(false);
//設(shè)置區(qū)域顏色、透明度
xyarearenderer.setSeriesPaint(0, new Color(0, 0, 255, 64));
xyarearenderer.setToolTipGenerator(new StandardXYToolTipGenerator("{0}({1}) = {2}",
new SimpleDateFormat("HH:mm"),
new DecimalFormat("#,##0")));
//設(shè)置第二曲線
StandardXYItemRenderer standardxyitemrenderer = new StandardXYItemRenderer();
standardxyitemrenderer.setToolTipGenerator(new StandardXYToolTipGenerator("{0}({1}) = {2}",
new SimpleDateFormat("HH:mm"),
new DecimalFormat("#,##0")));
xyplot.setDataset(1, lineDataset);
xyplot.setRenderer(1,standardxyitemrenderer);
return jfreechart;
}
public String generateStepRendererChart(
String title,
HttpSession session,
PrintWriter pw) {
String filename = null;
try {
JFreeChart chart = createChart(stepDataset);
//設(shè)置圖片的背景色
chart.setBackgroundPaint(new Color(215,215,215));
//設(shè)置圖片標(biāo)題的字體和大小
TextTitle _title = new TextTitle(title);
_title.setFont(titleFont);
chart.setTitle(_title);
//把生成的圖片放到臨時(shí)目錄
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
//設(shè)置圖片名稱前綴
ServletUtilities.setTempFilePrefix("chart-");
//500是圖片長(zhǎng)度,300是圖片高度
filename = ServletUtilities.saveChartAsPNG(chart, 600, 350, info, session);
ChartUtilities.writeImageMap(pw, filename, info, false);
pw.flush();
System.out.println(System.getProperty("java.io.tmpdir") + filename);
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_600x350.png";
}
return filename;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -