package ZhaoMengJFreeChart;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.time.Day;
public class TimeSquenceZhao {

//获取时序图的数据集
//datemap里存的是key对应的ArrayList 每一个对应着一个集合
public static ArrayList<TimeSeries> getTimeSeries (HashMap<String,ArrayList<Day>> dateMap,HashMap<String,ArrayList<Double>> valueMap) {
ArrayList<TimeSeries> seriesList = new ArrayList<TimeSeries>();
Set<String> key = dateMap.keySet();
Iterator<String> iterator = key.iterator();
if(iterator.hasNext()) {//一个关键字代表着一个集合
String keyString = iterator.next();
ArrayList<Day> date = dateMap.get(keyString);
ArrayList<Double> value = valueMap.get(keyString);
TimeSeries timeSeries = new TimeSeries(keyString, Day.class);//时间的最小单位是天
seriesList.add(timeSeries);
for(int i = 0;i<date.size();i++) {
//System.out.println(value.get(i));
timeSeries.add(date.get(i), value.get(i));
}


}
System.out.println(seriesList.size());//这里怎么会是1呢   我期望的是2啊

return seriesList; }
//获取数据集合
public static XYDataset getXYDataset(ArrayList<TimeSeries> seriesList) {
TimeSeriesCollection collection = new TimeSeriesCollection();
for(int i =0;i< seriesList.size();i++) {
collection.addSeries(seriesList.get(i));
}
return collection;
}
//获取图表
public static JFreeChart getJfreeChart(String title,String timeAxisLabel,String valueAxisLabel,  XYDataset dataset) {
JFreeChart chart = ChartFactory.createTimeSeriesChart(title,timeAxisLabel,
valueAxisLabel,         
dataset,
                true,
                true,false);
XYPlot plot = chart.getXYPlot();
DateAxis axis = (DateAxis) plot.getDomainAxis();
axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM-dd"));
return chart;
               
}
public static void showChart(JFreeChart chart) {
ChartFrame chartFrame = new ChartFrame("gui",chart);
chartFrame.pack();
chartFrame.setVisible(true);
}
public static void main(String[] args) {
HashMap<String,ArrayList<Day>> dateMap = new HashMap<String,ArrayList<Day>>();
HashMap<String,ArrayList<Double>> valueMap = new HashMap<String,ArrayList<Double>>();
ArrayList<Day> dayList1 = new ArrayList<Day>();
ArrayList<Double> valueList1 = new ArrayList<Double>();
ArrayList<Day> dayList2 = new ArrayList<Day>();
ArrayList<Double> valueList2 = new ArrayList<Double>();
for(int i=1;i<=6;i++) {
dayList1.add(new Day(10, i, 2004));
}
for(int i=1;i<=6;i++) {
dayList2.add(new Day(20, i, 2004));
}
for(int i=1;i<=6;i++) {
valueList1.add(new Double(i));
}
for(int i=1;i<=6;i++) {
valueList2.add(new Double(i));
}
dateMap.put("安庆", dayList1);
valueMap.put("安庆", valueList1);
dateMap.put("淮南", dayList2);
valueMap.put("淮南", valueList2);
//System.out.println(dateMap);
//System.out.println(dayList1.get(5));
showChart(getJfreeChart("人口统计","日期","人口数", getXYDataset(getTimeSeries(dateMap,valueMap))));
//结果怎么会被覆盖呢
}

}
  此程序我想要的是输出两天曲线
    可结果只输入一条  从结果看他是两条合并成一条啦  不可思议啊
我测试过 System.out.println(seriesList.size());结果是1
  望大侠相助啊……
 在线等待……