问题描述
解析xml的:@SuppressWarnings("unchecked")public static List<PerfData> parseXml(String path) throws Exception {SAXBuilder builder = new SAXBuilder();InputStream in = new FileInputStream("D:\PerfData.xml");// 获得文档对象Document doc = builder.build(in);// 获取根节点Element root = doc.getRootElement();// 获取元素的集合List<PerfData> list = new ArrayList<PerfData>();List<Element> lists = root.getChildren();for (int i = 1; i < list.size() - 1; i++) {Element e = lists.get(i);PerfData pd = new PerfData();pd.setName(e.getAttributeValue("NAME"));pd.setVal(Double.parseDouble(e.getAttributeValue("VAL")));list.add(pd);System.out.println(e.getAttributeValue("NAME")+pd.getName() + pd.getVal() + "aaaaa");}return list;}public static void main(String[] args) {try {parseXml("D:\PerfData.xml");} catch (Exception e) {e.printStackTrace();}}}柱状图的:public class BarChart {public static void main(String[] args) {getBarChart();}@SuppressWarnings("deprecation")public static void getBarChart(){JFreeChart chart = ChartFactory.createBarChart3D("cpu使用率图统计", null, null,getDataSet(), PlotOrientation.VERTICAL, true, false, false);chart.setBackgroundPaint(Color.WHITE);CategoryPlot plot = chart.getCategoryPlot();CategoryAxis domainAxis = plot.getDomainAxis();plot.setDomainAxis(domainAxis);ValueAxis rangeAxis = plot.getRangeAxis();// 设置最高的一个 Item 与图片顶端的距离rangeAxis.setUpperMargin(0.15);// 设置最低的一个 Item 与图片底端的距离rangeAxis.setLowerMargin(0.15);plot.setRangeAxis(rangeAxis);BarRenderer3D renderer = new BarRenderer3D();renderer.setBaseOutlinePaint(Color.BLACK);// 设置 Wall 的颜色renderer.setWallPaint(Color.gray);// 设置每种水果代表的柱的颜色renderer.setSeriesPaint(0, new Color(0, 0, 255));renderer.setSeriesPaint(1, new Color(0, 100, 255));renderer.setSeriesPaint(2, Color.GREEN);// 设置每个地区所包含的平行柱的之间距离renderer.setItemMargin(0.1);// 显示每个柱的数值,并修改该数值的字体属性renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());renderer.setItemLabelsVisible(true);plot.setRenderer(renderer);// 设置柱的透明度plot.setForegroundAlpha(0.6f);// 设置地区、销量的显示位置plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);try {ChartUtilities.saveChartAsJPEG(new File("bar.jpg"), chart, 800, 600);} catch (IOException exz) {System.out.print("....Cant′t Create image File");}}/** * 获取一个柱状图的简单数据集对象 * * @return */private static CategoryDataset getDataSet() {DefaultCategoryDataset dataset = new DefaultCategoryDataset();try {List<PerfData> list = SAXParseXml.parseXml("D:\PerfData.xml");for (PerfData e: list) {dataset.addValue(e.getVal(),e.getName(),null);}} catch (Exception e1) {// TODO Auto-generated catch blocke1.printStackTrace();}return dataset;}}问题补充哥哥姐姐帮我看看到底是什么问题啊?
解决方案
fanyushuai 写道哥哥姐姐帮我看看到底是什么问题啊?搞得这么麻烦。试试FusionChart这个。有2D和3D的各种形状的图表,更别说柱形了。而且只要把xml文件配即可。美观又快速,还可以打印。
解决方案二:
应该上传一下xml不过建议用报表工具
解决方案三:
用个报表工具吧,类似JasperReport一类的东西
解决方案四:
呵呵 现在ITEYE上流行养眼的头像了么?
解决方案五:
ls两位头像真养眼!
解决方案六:
osacar 写道fanyushuai 写道哥哥姐姐帮我看看到底是什么问题啊?搞得这么麻烦。试试FusionChart这个。有2D和3D的各种形状的图表,更别说柱形了。而且只要把xml文件配即可。美观又快速,还可以打印。+1建议试试FusionCharts,后台生成XML的代码写好,生成各种图表很方便