81,092
社区成员
发帖
与我相关
我的任务
分享
/*============================= 折线图 初始化 ===============================*/
// 创建集合收集器
XYSeriesCollection xySeriesCollection = new XYSeriesCollection();
//默认折线
XYSeries defaultSeries = new XYSeries("");
// 新用户折线
XYSeries newUserSeries = new XYSeries(rowNew);
// 老用户折线
XYSeries oldUserSeries = new XYSeries(rowOld);
// 总用户折线
XYSeries totalSeries = new XYSeries(total);
// 移动总用户折线
XYSeries cmSeries = new XYSeries(cm);
// JAVA 平台
XYSeries javaSeries = new XYSeries(java);
// 联通总用户折线
XYSeries unSeries = new XYSeries(un);
// C++ 平台
XYSeries cSeries = new XYSeries(c);
/*============================= 折线图 初始化 ===============================*/
// 一个月拥有的天数
int days = Integer.valueOf((String) request.getAttribute("days"));
for (int i = 1, j = 0; i <= days; i++) {
//日期显示[01、02、03…… ]
String date = "" + i;
if (j < size) {
map = (Map) list.get(j);
//如果数据从第一天开始记录,则day从1开始,如果和i相等就开始绘制
if (Integer.valueOf(map.get("day").toString()) == i) {
newUserSeries.add(Integer.parseInt(map.get("day").toString()), Double.valueOf(map.get("cnt2").toString()));
oldUserSeries.add(Integer.parseInt(map.get("day").toString()), Double.valueOf(map.get("cnt3").toString()));
j++;
} else {
//这里是没有数据的情况,默认0
if (i < 10) {
date = "0" + i;
}
defaultSeries.add(Integer.parseInt(date),defaultvalue);
}
}else {
if (i < 10) {
date = "0" + i;
}
//这是都没有数据的时候,绘制图
defaultSeries.add(Integer.parseInt(date),defaultvalue);
}
// 添加新用户数据集合
xySeriesCollection.addSeries(newUserSeries);
// 添加旧用户数据集合
xySeriesCollection.addSeries(oldUserSeries);
// 添加总用户集合
xySeriesCollection.addSeries(totalSeries);
// 添加JAVA 用户集合
xySeriesCollection.addSeries(javaSeries);
// 添加C 用户集合
xySeriesCollection.addSeries(cSeries);
// 添加CM用户集合
xySeriesCollection.addSeries(cmSeries);
// 添加UN用户集合
xySeriesCollection.addSeries(unSeries);
xySeriesCollection.addSeries(defaultSeries);
//创建折线图模型 【标题、横坐标标题、纵坐标标题、数据集、……】
JFreeChart jfreechart = ChartFactory.createXYLineChart(title
.toString(), "统计日期", "用户量", xySeriesCollection,
PlotOrientation.VERTICAL, true, true, false);
//jfreechart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
jfreechart.setBackgroundPaint(Color.WHITE);
/*------------设定Plot参数-------------*/
// 使用CategoryPlot设置各种参数。以下设置可以省略。
XYPlot plot = (XYPlot) jfreechart.getPlot();
// 背景色 透明度
plot.setBackgroundAlpha(0.5f);
// 前景色 透明度
plot.setForegroundAlpha(0.5f);
// X轴整数显示
NumberAxis x = (NumberAxis)plot.getDomainAxis();
x.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
XYLineAndShapeRenderer lineandshaperenderer = (XYLineAndShapeRenderer) plot.getRenderer();
// series 点(即数据点)可见
lineandshaperenderer.setBaseShapesVisible(true);
// series 点(即数据点)间有连线可见
lineandshaperenderer.setBaseLinesVisible(true);
// 显示折点数据
//lineandshaperenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
//lineandshaperenderer.setBaseItemLabelsVisible(true);