关键代码 其中标红部分为横轴数据显示方法
public JFreeChart creatXYChart(String cdzid,String tgtime) {
Cdz cdz=super.get(Cdz.class, cdzid);
if(tgtime!=null&&!("".equals(tgtime))){
ntime=tgtime;
}
getDataSet(cdzid,tgtime);
if(cdz==null)
cdz=new Cdz();
JFreeChart chart = ChartFactory
.createTimeSeriesChart(cdz.getName()+" "+ntime, // 图表标题
"时间", // 目录轴的显示标签
"忙闲状态(1-忙碌,2-一般,3-空闲)", // 数值轴的显示标签
getDataSet(cdzid,tgtime), // 数据集
false, // 是否显示图例(对于简单的柱状图必须是false)
true, // 是否生成工具
true // 是否生成URL链接
);
chart.setTextAntiAlias(false);
chart.setBackgroundPaint(java.awt.Color.WHITE);
XYPlot plot = (XYPlot) chart.getPlot();
plot.setBackgroundPaint(Color.WHITE);
plot.setRangeGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.LIGHT_GRAY);// 虚线色彩
org.jfree.chart.renderer.xy.XYItemRenderer xyitemrenderer = plot.getRenderer();
if(xyitemrenderer instanceof XYLineAndShapeRenderer)
{//显示节点
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)xyitemrenderer;
xylineandshaperenderer.setBaseShapesVisible(true);
xylineandshaperenderer.setBaseShapesFilled(true);
}
XYItemRenderer xyitem = plot.getRenderer();
xyitem.setBaseItemLabelsVisible(true);
xyitem.setBasePositiveItemLabelPosition((new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12,TextAnchor.BASELINE_CENTER)));
DecimalFormat decimalformat1 = new DecimalFormat("##.##");//数据点显示数据值的格式
java.text.DateFormat format1 = new java.text.SimpleDateFormat("HH:mm");
//下面三句是对设置折线图数据标示的关键代码
// xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());// 显示y轴数据 纵轴数据显示
xyitem.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator("{1}", format1,decimalformat1));// 显示x轴数据 横轴数据显示
xyitem.setBaseItemLabelFont(new Font("Dialog", 1, 14));
plot.setRenderer(xyitem);
plot.setNoDataMessage("暂 无 数 据");
NumberAxis numAxis = (NumberAxis)plot.getRangeAxis();
//设置y显示方式
numAxis.setAutoTickUnitSelection(false);//数据轴的数据标签是否自动确定
double rangetick = 1D;
numAxis.setTickUnit(new NumberTickUnit(rangetick)); //y轴单位间隔为0.1
numAxis.setAutoRangeIncludesZero(true);
//设置x轴显示方式
DateAxis dateaxis = (DateAxis)plot.getDomainAxis();
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
dateaxis.setDateFormatOverride(format);//设置x轴数据单位以×月×日方式显示
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
//设置曲线是否显示数据点
xylineandshaperenderer.setBaseShapesVisible(true);
return chart;
}