解析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 block e1.printStackTrace(); } return dataset; }
}
问题补充
哥哥姐姐帮我看看到底是什么问题啊?