XYDataset 要用这个,你搜索下. 给个例子,如果可以自己改吧.没有文档的东西只有看源码.实现这些奇怪的图一般都要自己设置横纵坐标,然后画一张图覆盖上去的. public static JFreeChart createChart(){ XYDataset localXYDataset1=createDataset("Series 1",100.0D,new Minute(),200); JFreeChart chart=ChartFactory.createTimeSeriesChart( "Multiple Axis Demo 1","Time of Day","Primary Range Axis",localXYDataset1, true,true,false); chart.addSubtitle(new TextTitle("Four datasets and four range axes."));
你手动的话:
是改变数据吗?
还是改变显示方式。
还是。
肯定可以实现咯,提供不同的入口或者参数啊
我也是这么做的
将横纵坐标值填进去图自然就出来了啊
有sql的
还有javabean的
网上实例也多,挺方便的
String str1="北京";
String str2="上海";
String str3="深圳"; String str4="葡萄";
String str5="苹果";
String str6="香蕉";
String str7="梨";
String str8="桃子"; DefaultCategoryDataset dcd=new DefaultCategoryDataset();
dcd.addValue(1.0D,str1,str4);
dcd.addValue(4.0D,str1,str5);
dcd.addValue(3.0D,str1,str6);
dcd.addValue(5.0D,str1,str7);
dcd.addValue(5.0D,str1,str8);
dcd.addValue(5.0D,str2,str4);
dcd.addValue(7.0D,str2,str5);
dcd.addValue(6.0D,str2,str6);
dcd.addValue(8.0D,str2,str7);
dcd.addValue(4.0D,str2,str8);
dcd.addValue(4.0D,str3,str4);
dcd.addValue(3.0D,str3,str5);
dcd.addValue(2.0D,str3,str6);
dcd.addValue(3.0D,str3,str7);
dcd.addValue(6.0D,str3,str8);
如果是你要的,那葡萄和苹果中间算什么?
月分中间可有得算,
用这个DATA应该实现不了的.你可以试试其它的
DATABASE,试试,如果找到了再回复
给个例子,如果可以自己改吧.没有文档的东西只有看源码.实现这些奇怪的图一般都要自己设置横纵坐标,然后画一张图覆盖上去的.
public static JFreeChart createChart(){
XYDataset localXYDataset1=createDataset("Series 1",100.0D,new Minute(),200);
JFreeChart chart=ChartFactory.createTimeSeriesChart(
"Multiple Axis Demo 1","Time of Day","Primary Range Axis",localXYDataset1,
true,true,false);
chart.addSubtitle(new TextTitle("Four datasets and four range axes."));
XYPlot localXYPlot=(XYPlot)chart.getPlot();
localXYPlot.setOrientation(PlotOrientation.VERTICAL);
localXYPlot.setDomainPannable(true);
localXYPlot.setRangePannable(true);
localXYPlot.getRangeAxis().setFixedDimension(15.0D);
NumberAxis localNumberAxis1=new NumberAxis("Range Axis 2");
localNumberAxis1.setFixedDimension(10.0D);
localNumberAxis1.setAutoRangeIncludesZero(false);
localXYPlot.setRangeAxis(1,localNumberAxis1);
localXYPlot.setRangeAxisLocation(1,AxisLocation.BOTTOM_OR_LEFT);
XYDataset localXYDataset2=createDataset("Series 2",1000.0D,new Minute(),170);
localXYPlot.setDataset(1,localXYDataset2);
localXYPlot.mapDatasetToRangeAxis(1,1);
StandardXYItemRenderer localStandardXYItemRenderer1=new StandardXYItemRenderer();
localXYPlot.setRenderer(1,localStandardXYItemRenderer1);
NumberAxis localNumberAxis2=new NumberAxis("Range Axis 3");
localXYPlot.setRangeAxis(2,localNumberAxis2); /*XYDataset localXYDataset3=createDataset("Series 3",10000.0D,new Minute(),170);
localXYPlot.setDataset(2,localXYDataset3);*/
localXYPlot.mapDatasetToRangeAxis(2,2);
StandardXYItemRenderer localStandardXYItemRenderer2=new StandardXYItemRenderer();
localXYPlot.setRenderer(2,localStandardXYItemRenderer2);
/*NumberAxis localNumberAxis3=new NumberAxis("Range Axis 4");
localXYPlot.setRangeAxis(3,localNumberAxis3);*/ /*XYDataset localXYDataset4=createDataset("Series 4",25.0D,new Minute(),200);
localXYPlot.setDataset(3,localXYDataset4);*/
localXYPlot.mapDatasetToRangeAxis(3,3);
StandardXYItemRenderer localStandardXYItemRenderer3=new StandardXYItemRenderer();
localXYPlot.setRenderer(3,localStandardXYItemRenderer3);
ChartUtilities.applyCurrentTheme(chart);
localXYPlot.getRenderer().setSeriesPaint(0,Color.black);
localStandardXYItemRenderer1.setSeriesPaint(0,Color.red);
localNumberAxis1.setLabelPaint(Color.red);
localNumberAxis1.setTickLabelPaint(Color.red);
localStandardXYItemRenderer2.setSeriesPaint(0,Color.blue);
localNumberAxis2.setLabelPaint(Color.blue);
localNumberAxis2.setTickLabelPaint(Color.blue);
localStandardXYItemRenderer3.setSeriesPaint(0,Color.green);
/*localNumberAxis3.setLabelPaint(Color.green);
localNumberAxis3.setTickLabelPaint(Color.green);*/
return chart;
} public static XYDataset createDataset(String paramString,double paramDouble,
RegularTimePeriod paramRegularTimePeriod,int paramInt){
TimeSeries localTimeSeries=new TimeSeries(paramString);
RegularTimePeriod localRegularTimePeriod=paramRegularTimePeriod; double d=paramDouble;
for(int i=0;i<paramInt;++i){
localTimeSeries.add(localRegularTimePeriod,d);
localRegularTimePeriod=localRegularTimePeriod.next();
d*=(1.0D+(Math.random()-0.495D)/10.0D);
} TimeSeriesCollection localTimeSeriesCollection=new TimeSeriesCollection();
localTimeSeriesCollection.addSeries(localTimeSeries);
return localTimeSeriesCollection;
} public static void saveCharToJPG(JFreeChart chart,String fileName) throws IOException{
OutputStream fos=null;
try{
fos=new BufferedOutputStream(new FileOutputStream(fileName));
ChartUtilities.writeChartAsJPEG(fos,1.0f,chart,1024,768,null);
}catch(Exception e){
}finally{
fos.close();
}
} public static void main(String[] args) throws IOException{
saveCharToJPG(createChart(),"D:\\multipleaxis.jpg");
}