不解释,直接上代码
public class demo_zhe { public static void main(String[] args) { // 创建数据集 DefaultCategoryDataset dataset = new DefaultCategoryDataset(); dataset.addValue(10, "数量", "PE"); dataset.addValue(200, "长度和", "PE"); dataset.addValue(30, "数量", "STEEL"); dataset.addValue(400, "长度和", "STEEL"); dataset.addValue(50, "数量", "CUTTER"); dataset.addValue(350, "长度和", "CUTTER"); dataset.addValue(70, "数量", "NYLON"); dataset.addValue(800, "长度和", "NYLON"); dataset.addValue(55, "数量", "COPPER"); dataset.addValue(1000, "长度和", "COPPER"); // 创建图表 JFreeChart chart = ChartFactory.createLineChart( "低压燃气管道", // 图表标题 "材质", // 横轴标签 "", // 纵轴标签,在后面创建纵轴标签 dataset // 数据集 ); // 设置背景颜色 chart.setBackgroundPaint(Color.white); // 获取绘图区域对象 CategoryPlot plot = (CategoryPlot) chart.getPlot(); // 设置Y1轴 NumberAxis axis1 = (NumberAxis) plot.getRangeAxis(); axis1.setAutoRangeIncludesZero(false); axis1.setLabel("数量"); // 创建第二个Y轴,使用和第一个Y轴相同的X轴 NumberAxis axis2 = new NumberAxis("长度和"); axis2.setAutoRangeIncludesZero(false); // 将第二个Y轴添加到图表中 plot.setRangeAxis(1, axis2); plot.setDataset(1, dataset); plot.mapDatasetToRangeAxis(1, 1); // 设置第二个系列的绘制器和颜色 CategoryItemRenderer renderer2 = plot.getRenderer(); renderer2.setSeriesPaint(1, java.awt.Color.BLUE); //在折点新鲜事数值 renderer2.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator()); renderer2.setDefaultItemLabelsVisible(true); renderer2.setDefaultPositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT)); renderer2.setDefaultItemLabelFont(new Font("宋体", Font.PLAIN, 20)); /** ---------------------- 中文乱码问题处理 Start ------------------------------- */ CategoryAxis domainAxis = plot.getDomainAxis(); //水平底部列表 domainAxis.setLabelFont(new Font("宋体", Font.BOLD, 14)); //水平底部标题 domainAxis.setTickLabelFont(new Font("宋体", Font.BOLD, 12)); //垂直标题 ValueAxis rangeAxis = plot.getRangeAxis();//获取柱状 rangeAxis.setLabelFont(new Font("宋体", Font.BOLD, 15)); chart.getLegend().setItemFont(new Font("宋体", Font.BOLD, 15)); chart.getTitle().setFont(new Font("宋体", Font.BOLD, 20));//设置标题字体 /** ---------------------- 中文乱码问题处理 End ------------------------------- */ // 创建图表窗口并显示图表 ChartPanel chartPanel = new ChartPanel(chart); //测试用,导入程序,可将此段删除 JFrame frame = new JFrame("Dual Axis Bar Chart"); frame.setContentPane(chartPanel); frame.setSize(800, 600); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }