[原]java生成图表

主要jar:jfreechart.jar

	private JFreeChart chart;

	public JFreeChart getFoldlineGraph(double[][] data, String[] rowKeys, String[] columnKeys, boolean isline) {
		CategoryDataset dataset = getBarData(data, rowKeys, columnKeys);
		createTimeXYChar("单板测试通过率", "图例", "成功率", dataset, "", isline);
		return chart;
	}

	private CategoryDataset getBarData(double[][] data, String[] rowKeys, String[] columnKeys) {
		return DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
	}

private void createTimeXYChar(String chartTitle, String x, String y,
			CategoryDataset xyDataset, String charName, boolean isline) {
		chart = ChartFactory.createLineChart(chartTitle, x, y, xyDataset,
				PlotOrientation.VERTICAL, true, true, false);
		Font font00 = new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT, 13);
		LegendTitle legend = chart.getLegend();
		legend.setItemFont(font00);// 设置注释字体
		chart.setTextAntiAlias(false);
		// 设置图标题的字体重新设置title
		Font font = new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT, 15);
		TextTitle title = new TextTitle(chartTitle);
		title.setFont(font);
		chart.setTitle(title);
		CategoryPlot categoryplot = (CategoryPlot) chart.getPlot();
		// x轴分类轴网格是否可见
		categoryplot.setDomainGridlinesVisible(true);
		// y轴数据轴网格是否可见
		categoryplot.setRangeGridlinesVisible(true);
		categoryplot.setRangeGridlinePaint(Color.pink);// 虚线色彩
		categoryplot.setDomainGridlinePaint(Color.pink);// 虚线色彩
		categoryplot.setBackgroundPaint(Color.white);
		// 设置轴和面板之间的距离
		categoryplot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 0D));
		CategoryAxis domainAxis = categoryplot.getDomainAxis();
		domainAxis.setLabelFont(new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT,
				13));// 轴标题
		domainAxis.setTickLabelFont(new Font("微软雅黑",
				Font.LAYOUT_NO_LIMIT_CONTEXT, 13));// 轴数值
		domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 横轴上的
		// 设置距离图片左端距离
		domainAxis.setLowerMargin(0);
		// 设置距离图片右端距离
		domainAxis.setUpperMargin(0);
		NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis();
		numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
		numberaxis.setAutoRangeIncludesZero(true);
		numberaxis.setLabelFont(new Font("微软雅黑", Font.LAYOUT_NO_LIMIT_CONTEXT,
				13));
		// 设置最高的一个值与图片顶端的距离
		numberaxis.setUpperMargin(0.15);
		// 设置最低的一个值与图片底端的距离
		// numberaxis.setLowerMargin(0.15);
		// 获得renderer
		LineAndShapeRenderer lineandshaperenderer = (LineAndShapeRenderer) categoryplot
				.getRenderer();
		lineandshaperenderer.setBaseShapesVisible(true); // series 点(即数据点)可见
		lineandshaperenderer.setBaseLinesVisible(isline); // series 点(即数据点)间有连线可见
		// 显示折点数据
		lineandshaperenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
		lineandshaperenderer.setBaseItemLabelsVisible(true);
	}


你可能感兴趣的:(java,String,jfreechart,微软,dataset,网格)