如何用jfreechart显示饼状图,数据来自我的数据库当中。求具体代码
sql=selectdistinctpassengeridCard_frfrompassenger,pnrtablewherepassenger.idCard=pnrta...
sql=select distinct passenger idCard_fr from passenger,pnrtable where passenger.idCard=pnrtable.idCard and srcAirport='PEK'and dstAirport='PEK';
idCard_fr是年龄。
能不能直接通过sql语句查找出来的数据直接用jfreechat饼状图显示。求具体的代码?如果不行的话,我把数据具体的存入一个文件中也行。 展开
idCard_fr是年龄。
能不能直接通过sql语句查找出来的数据直接用jfreechat饼状图显示。求具体的代码?如果不行的话,我把数据具体的存入一个文件中也行。 展开
1个回答
展开全部
/*
* 生成3D饼状图
*/
public static JFreeChart buildeChartAsPieChart3D(String title,
List<TimeSeriesDataBean> list) {
FontCtl.setFont();// 解决乱码问题
List<String[]> dataList = new ArrayList<String[]>();
String[] ss;
for (TimeSeriesDataBean bean : list) {
ss = new String[2];
ss[0] = bean.getNam();
ss[1] = bean.getVal() + "";
dataList.add(ss);
}
DefaultPieDataset dataset = DataSetBuilder.buildPieChartDataSet(title,
dataList);
JFreeChart chart = ChartFactory.createPieChart3D(title, dataset, true,
true, false);
// chart.addSubtitle(new TextTitle("SUBTITLE测试"));
PiePlot pieplot = (PiePlot) chart.getPlot();
// {0}:({1})% 代表显示格式 : 0 = 名称 1 = 值 比如 : 名称:19%
StandardPieSectionLabelGenerator standarPieIG = new StandardPieSectionLabelGenerator(
"{0}:({1})", NumberFormat.getNumberInstance(), NumberFormat
.getPercentInstance());
pieplot.setLabelGenerator(standarPieIG);
// 没有数据的时候显示的内容
pieplot.setNoDataMessage("无数据显示");
pieplot.setLabelGap(0.02D);
PiePlot3D pieplot3d = (PiePlot3D) chart.getPlot();
// 设置开始角度
pieplot3d.setStartAngle(120D);
// 设置方向为”顺时针方向“
pieplot3d.setDirection(Rotation.CLOCKWISE);
// 设置透明度,0.5F为半透明,1为不透明,0为全透明
pieplot3d.setForegroundAlpha(0.7F);
ChartFrame frame = new ChartFrame(title, chart);
frame.pack();
frame.setVisible(true);
return chart;
}
更多追问追答
追问
我就是不知道怎么定义我的数据集,我是不是可以直接写sql语句?
追答
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("显示名称", "值(DOUBLE类型)");
这样明白么?这个是JFREECHART的自带方法。
上面我的代码中
DefaultPieDataset dataset = DataSetBuilder.buildPieChartDataSet(title, dataList);
这一段是我把这个方法封装了一下而已。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询