📄 dualaxis.jsp
字号:
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page import = "org.jfree.chart.ChartFactory,
org.jfree.chart.JFreeChart,
org.jfree.chart.servlet.ServletUtilities,
org.jfree.chart.plot.PlotOrientation,
java.awt.Color,
org.jfree.chart.axis.*,
org.jfree.chart.block.*,
org.jfree.chart.labels.StandardCategoryToolTipGenerator,
org.jfree.chart.plot.*,
org.jfree.chart.renderer.category.LineAndShapeRenderer,
org.jfree.chart.title.CompositeTitle,
org.jfree.chart.title.LegendTitle,
org.jfree.data.category.CategoryDataset,
org.jfree.data.category.DefaultCategoryDataset,
org.jfree.ui.*"%>
<%
//构造数据集1
String s = "全职收入";
String s1 = "兼职收入";
String s3 = "张三";
String s4 = "李四";
String s5 = "王五";
String s6 = "刘六";
String s7 = "谢七";
String s8 = "朱八";
String s9 = "陈九";
String s10 = "周十";
DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
dataset1.addValue(2000, s, s3);
dataset1.addValue(2500, s, s4);
dataset1.addValue(1500, s, s5);
dataset1.addValue(3000, s, s6);
dataset1.addValue(2800, s, s7);
dataset1.addValue(3300, s, s8);
dataset1.addValue(3500, s, s9);
dataset1.addValue(2500, s, s10);
dataset1.addValue(1000, s1, s3);
dataset1.addValue(800, s1, s4);
dataset1.addValue(600, s1, s5);
dataset1.addValue(700, s1, s6);
dataset1.addValue(750, s1, s7);
dataset1.addValue(850, s1, s8);
dataset1.addValue(1200, s1, s9);
dataset1.addValue(900, s1, s10);
//构造数据集2
String name = "支出";
DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
dataset2.addValue(1500, name, s3);
dataset2.addValue(1600, name, s4);
dataset2.addValue(1200, name, s5);
dataset2.addValue(2000, name, s6);
dataset2.addValue(2200, name, s7);
dataset2.addValue(2500, name, s8);
dataset2.addValue(3000, name, s9);
dataset2.addValue(2000, name, s10);
//创建图形对象
JFreeChart jfreechart = ChartFactory.createBarChart("双轴图形",
"姓名",
"收入值",
dataset1,
PlotOrientation.VERTICAL,
false,
true,
false);
jfreechart.setBackgroundPaint(Color.white);
CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
categoryplot.setBackgroundPaint(new Color(238, 238, 255));
categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
CategoryDataset categorydataset = dataset2;
categoryplot.setDataset(1, categorydataset);
categoryplot.mapDatasetToRangeAxis(1, 1);
CategoryAxis categoryaxis = categoryplot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
NumberAxis numberaxis = new NumberAxis("支出值");
categoryplot.setRangeAxis(1, numberaxis);
LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
lineandshaperenderer.setBaseToolTipGenerator(new StandardCategoryToolTipGenerator());
categoryplot.setRenderer(1, lineandshaperenderer);
categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
LegendTitle legendtitle = new LegendTitle(categoryplot.getRenderer(0));
legendtitle.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
legendtitle.setFrame(new BlockBorder());
LegendTitle legendtitle1 = new LegendTitle(categoryplot.getRenderer(1));
legendtitle1.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
legendtitle1.setFrame(new BlockBorder());
BlockContainer blockcontainer = new BlockContainer(new BorderArrangement());
blockcontainer.add(legendtitle, RectangleEdge.LEFT);
blockcontainer.add(legendtitle1, RectangleEdge.RIGHT);
blockcontainer.add(new EmptyBlock(2000D, 0.0D));
CompositeTitle compositetitle = new CompositeTitle(blockcontainer);
compositetitle.setPosition(RectangleEdge.BOTTOM);
jfreechart.addSubtitle(compositetitle);
String filename = ServletUtilities.saveChartAsPNG(jfreechart, 600, 400, null, session);
String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width="600" height="400" border="0" usemap="#<%= filename %>">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -