JfreeChart实现了一年12个月柱状图每月一列柱子,现在是要实现每个月后面还得加3列柱状,一个月总共就是4列柱状。
JfreeChart实现了一年12个月饼状每月一小块,现在是要实现每个月里面用颜色分开4种颜色的小块,可以用参数1,2,3,4分别代表一种颜色。
答到边的都有分
因为之前发帖的时候,碰上维修,发出6个帖子,没人回答,又不好结贴,如果这个问题回答正确的话,其它6个贴的分全送上,只要到其它铁回复一句,总120分加上这里的分。
JfreeChart实现了一年12个月饼状每月一小块,现在是要实现每个月里面用颜色分开4种颜色的小块,可以用参数1,2,3,4分别代表一种颜色。
答到边的都有分
因为之前发帖的时候,碰上维修,发出6个帖子,没人回答,又不好结贴,如果这个问题回答正确的话,其它6个贴的分全送上,只要到其它铁回复一句,总120分加上这里的分。
解决方案 »
- 启动Tomcat时如何隐藏命令提示符窗口
- 数组问题
- 很急.问题不难.希望大家进来看看,说不定你也碰到过,或将要碰到
- 使用POI导出到EXCEL时,导出的数据量大时,EXCEL文件出错
- 关于树的行数,救命呀。。十万火急。
- interface Interaction {}和getFilePointer() 是做什么用的?
- 如何用Map实现这个需求
- object obj=null;和object obj;有什么区别;
- 尽量避免使用DriverManager方法。遗憾的是,许多JDBC教科书中还在经常使用这种方法。
- where to find java.util.list?
- 程序求解
- 一个简单的按钮布局界面,想简化代码,但为什么都不显示啊
大胡子 老师来啦!上次做甘特图也是你指导了一下,但是现在的项目是在以前有的jfreechart上做,要统一,所以只能用jfreechart。
呃,那帮不上了。哈哈,这个东西,我用不来,甚至说从来没有去尝试过去他。我刚了一下你的贴子,确实是之前帮你回过。那个API 上次自己试了吧,应该比较容易上手吧。
其实吧我有个建议就是: 整改。 画图改起来也挺容易,如果时间允许的,就都改成用我这个。反正你纠结在这个问题上也不是一会能解决的。
/**
* 设置一个通用的主题并设置字体避免乱码
*
* @return
*/
private static StandardChartTheme getTheme() {
StandardChartTheme theme = new StandardChartTheme("unicode");
theme.setExtraLargeFont(new Font("微软雅黑", Font.BOLD, 15));
theme.setLargeFont(new Font("微软雅黑", Font.PLAIN, 15));
theme.setRegularFont(new Font("微软雅黑", Font.PLAIN, 12));
return theme;
} /**
* 生成柱状图
*
* @param title标题
* @param domainAxisLabel横轴的标签
* @param rangeAxisLabel纵轴的标签
* @param dataSet
* 数据集
*
* DefaultCategoryDataset dataset = new DefaultCategoryDataset();
* dataset.addValue(1.0, "Row 1", "Column 1");
* dataset.addValue(5.0, "Row 1", "Column 2");
* dataset.addValue(3.0, "Row 1", "Column 3");
* dataset.addValue(2.0, "Row 2", "Column 1");
* dataset.addValue(3.0, "Row 2", "Column 2");
* dataset.addValue(2.0, "Row 2", "Column 3");
*
* @return 可操作的JFreeChart对象
*/
public static JFreeChart getBarChart(String title, String domainAxisLabel,
String rangeAxisLabel, DefaultCategoryDataset dataSet) {
ChartFactory.setChartTheme(getTheme());
JFreeChart chart = ChartFactory.createBarChart(title, domainAxisLabel,
rangeAxisLabel, dataSet, PlotOrientation.VERTICAL, true, true,
false);
chart.setBackgroundPaint(Color.WHITE);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.GRAY); CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.WHITE); NumberAxis axis = (NumberAxis) plot.getRangeAxis();
axis.setUpperMargin(0.2D);
axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
CategoryAxis categoryaxis = plot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
plot.setRangeGridlinePaint(Color.BLUE); BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setItemMargin(0.0);
renderer.setDrawBarOutline(false);
renderer.setShadowVisible(false);
// LegendTitle legend = chart.getLegend();
// legend.setBorder(0.0D, 0.0D, 0.0D, 0.0D);
// legend.setItemLabelPadding(new RectangleInsets(0D, 0D, 0D, 20D));
return chart;
} /**
* 生成折线图
*
* @param title标题
* @param domainAxisLabel横轴的标签
* @param rangeAxisLabel纵轴的标签
* @param dataSet
* 数据集
*
* DefaultCategoryDataset dataset = new DefaultCategoryDataset();
* dataset.addValue(212, "Classes", "JDK 1.0");
* dataset.addValue(504, "Classes", "JDK 1.1");
* dataset.addValue(1520, "Classes", "SDK 1.2");
* dataset.addValue(1842, "Classes", "SDK 1.3");
* dataset.addValue(2991, "Classes", "SDK 1.4");
*
* @return 可操作的JFreeChart对象
*/
public static JFreeChart getLineChart(String title, String domainAxisLabel,
String rangeAxisLabel, DefaultCategoryDataset dataSet) { ChartFactory.setChartTheme(getTheme());
JFreeChart chart = ChartFactory.createLineChart(title, domainAxisLabel,
rangeAxisLabel, dataSet, PlotOrientation.VERTICAL, true, true,
false);
chart.setBackgroundPaint(Color.WHITE);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.GRAY);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.lightGray);
plot.setRangeGridlinePaint(Color.white);
CategoryAxis categoryaxis = plot.getDomainAxis();
categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45); LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot
.getRenderer();
renderer.setBaseShapesVisible(true); return chart;
} /**
* 生成带有折线图的柱状图
*
* @param title标题
* @param domainAxisLabel横轴标签
* @param rangeAxisLabel纵轴标签
* @param bardataSet
* 柱状图的数据集
*
* DefaultCategoryDataset bardataSet = new
* DefaultCategoryDataset(); bardataSet.addValue(1.0, "Row 1",
* "Column 1"); bardataSet.addValue(5.0, "Row 1", "Column 2");
* bardataSet.addValue(3.0, "Row 1", "Column 3");
* bardataSet.addValue(2.0, "Row 2", "Column 1");
* bardataSet.addValue(3.0, "Row 2", "Column 2");
* bardataSet.addValue(2.0, "Row 2", "Column 3");
*
* @param linedataSet
* 折线图的数据集
*
* DefaultCategoryDataset linedataSet = new
* DefaultCategoryDataset(); linedataSet.addValue(1.0, "point",
* "Column 1"); linedataSet.addValue(5.0, "point", "Column 2");
* linedataSet.addValue(3.0, "point", "Column 3");
*
* @return 可操作的JFreeChart对象
*/
public static JFreeChart getBarAndLineChart(String title, String domainAxisLabel,
String rangeAxisLabel, DefaultCategoryDataset bardataSet,
DefaultCategoryDataset linedataSet) { ChartFactory.setChartTheme(getTheme());
JFreeChart chart = ChartFactory.createBarChart(title, domainAxisLabel,
rangeAxisLabel, bardataSet, PlotOrientation.VERTICAL, true,
true, false); chart.setBackgroundPaint(Color.WHITE);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.GRAY);
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);// CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setBackgroundPaint(Color.WHITE); NumberAxis axis = (NumberAxis) plot.getRangeAxis();
axis.setUpperMargin(0.2D);
axis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
CategoryAxis categoryaxis = plot.getDomainAxis();
// categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
categoryaxis.setLowerMargin(0D);
categoryaxis.setUpperMargin(0D);
plot.setRangeGridlinePaint(Color.BLUE);
plot.setDomainGridlinePaint(Color.WHITE); BarRenderer renderer = (BarRenderer) plot.getRenderer();
renderer.setItemMargin(0.0);
renderer.setDrawBarOutline(false);
renderer.setShadowVisible(false);
plot.setDataset(1, linedataSet); NumberAxis numberaxis = new NumberAxis(null);
numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
plot.setRangeAxis(1, numberaxis); plot.mapDatasetToRangeAxis(1, 1); LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
plot.setRenderer(1, lineandshaperenderer);
plot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD); LegendTitle legend = chart.getLegend();
legend.setItemLabelPadding(new RectangleInsets(0D, 0D, 0D, 20D)); return chart;
}
/**
* 生成饼图
*
* @param title标题
* @param dataSet数据集
*
* DefaultPieDataset dataset = new DefaultPieDataset();
* dataset.setValue("Category 1", 43.2);
* dataset.setValue("Category 2", 27.9);
* dataset.setValue("Category 3", 79.5);
*
* @return 可操作的JFreeChart对象
*/
public static JFreeChart getPieChart(String title, DefaultPieDataset dataSet) {
ChartFactory.setChartTheme(getTheme());
JFreeChart chart = ChartFactory.createPieChart(title, dataSet, true,
true, false); PiePlot plot = (PiePlot) chart.getPlot();
plot.setSectionOutlinesVisible(false); chart.setBackgroundPaint(Color.WHITE);
chart.setBorderVisible(true);
chart.setBorderPaint(Color.GRAY); return chart;
}