当我使用示例代码中的数据样本时,一切正常。
Date[] dateValues = new Date[] { new Date(95, 0, 1), new Date(95, 3, 1), new Date(95, 6, 1),
new Date(95, 9, 1), new Date(96, 0, 1), new Date(96, 3, 1), new Date(96, 6, 1),
new Date(96, 9, 1), new Date(97, 0, 1), new Date(97, 3, 1), new Date(97, 6, 1),
new Date(97, 9, 1), new Date(98, 0, 1), new Date(98, 3, 1), new Date(98, 6, 1),
new Date(98, 9, 1), new Date(99, 0, 1), new Date(99, 3, 1), new Date(99, 6, 1),
new Date(99, 9, 1), new Date(100, 0, 1), new Date(100, 3, 1), new Date(100, 6, 1),
new Date(100, 9, 1), new Date(100, 11, 1) };
dates.add(dateValues);
double[] valueValues = { 4.9, 5.3, 3.2, 4.5, 6.5, 4.7, 5.8, 4.3, 4, 2.3, -0.5, -2.9, 3.2, 5.5,
4.6, 9.4, 4.3, 1.2, 0, 0.4, 4.5, 3.4, 4.5, 4.3, 4 };
values.add(valueValues);
但是,当我尝试使用自己的数据时,会特别绘制图表。
Set<Date> st = data.keySet();
Iterator<Date> it = st.iterator();
Date[] dateValues = new Date[data.size()];
double[] valueValues = new double[data.size()];
for (short i = 0; i < data.size(); i++) {
Date temp = it.next();
dateValues[i] = temp;
valueValues[i] = data.get(temp);
}
dates.add(dateValues);
values.add(valueValues);
我的意思是只有中心部分,比如放大图。
而不是我想看到的
double ymin = getYMin(valueValues) - (getYMax(valueValues) - getYMin(valueValues)) * 0.1;
double ymax = getYMax(valueValues) + (getYMax(valueValues) - getYMin(valueValues)) * 0.1;
int[] colors = new int[] { Color.GREEN };
PointStyle[] styles = new PointStyle[] { PointStyle.POINT };
XYMultipleSeriesRenderer renderer = buildRenderer(colors, styles);
setChartSettings(renderer, name, xtitle, ytitle, dateValues[0].getTime(),
dateValues[dateValues.length - 1].getTime(), ymin, ymax, Color.GRAY, Color.LTGRAY);
renderer.setShowGrid(true);
renderer.setYLabels(5);
renderer.setZoomButtonsVisible(true);
renderer.setZoomEnabled(true, false);
renderer.setPanEnabled(false, false);