public class CategoryItemChart {
public static String generateBarChart(HttpSession session, PrintWriter pw,int w, int h,ArrayList list) {
String filename = null;
try {
CategoryDataset dataset = createDataset(list);
JFreeChart chart = ChartFactory.createBarChart(
"",//å¾è¡¨æ é¢
"",//Xè½´æ é¢
"",//Yè½´æ é¢
dataset,//æ°æ®éå
PlotOrientation.VERTICAL,//å¾è¡¨æ¾ç¤ºæ¹åï¼æ°´å¹³ãåç´ï¼
true,//æ¯å¦ä½¿ç¨å¾ä¾
true,//æ¯å¦ä½¿ç¨å·¥å
·æ示
false//æ¯å¦ä¸ºå¾è¡¨å¢å URL
);
/*------------é
ç½®å¾è¡¨å±æ§--------------*/
chart.setBackgroundPaint(Color.white); // 1,设置æ´ä¸ªå¾è¡¨èæ¯é¢è²
CategoryPlot plot = chart.getCategoryPlot(); /*------------设å®Plotåæ°-------------*/
plot.setBackgroundPaint(Color.white); // 2,设置详ç»å¾è¡¨çæ¾ç¤ºç»èé¨åçèæ¯é¢è²
plot.setDomainGridlinePaint(Color.black); // 3,设置åç´ç½æ ¼çº¿é¢è²
plot.setDomainGridlinesVisible(false); // 4,设置æ¯å¦æ¾ç¤ºåç´ç½æ ¼çº¿
plot.setRangeGridlinePaint(Color.yellow); // 5,设置水平ç½æ ¼çº¿é¢è²
plot.setRangeGridlinesVisible(false); //6,设置æ¯å¦æ¾ç¤ºæ°´å¹³ç½æ ¼çº¿
/*---------å°æææ°æ®è½¬æ¢ä¸ºæ´æ°å½¢å¼---------*/
final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
/*---------设置æ¯å¦å¨æ±å¾çç¶ææ¡ä¸æ¾ç¤ºè¾¹æ¡----*/
CategoryItemRenderer renderer = (CategoryItemRenderer) plot.getRenderer();
BarRenderer render = (BarRenderer) plot.getRenderer();
// render.setItemMargin(0.0);
// render.setMinimumBarLength(0.0);
/*---------设置ç¶ææ¡é¢è²çæ·±æµ
æ¸å-----------*/
GradientPaint gp0 = new GradientPaint(0.0f, 0.0f, new Color(255,200, 80), 0.0f, 0.0f, new Color(255, 255, 40));
GradientPaint gp1 = new GradientPaint(0.0f, 0.0f, new Color(50,255, 50), 0.0f, 0.0f, new Color(100, 255, 100));
GradientPaint gp2 = new GradientPaint(0.0f, 0.0f, Color.red, 0.0f,0.0f, new Color(255, 100, 100));
GradientPaint gp3 = new GradientPaint(0.0f, 0.0f, new Color(108,108, 255), 0.0f, 0.0f, new Color(150, 150, 200));
renderer.setSeriesPaint(0, gp0);
renderer.setSeriesPaint(1, gp1);
renderer.setSeriesPaint(2, gp2);
renderer.setSeriesPaint(3, gp3);
/*
*
* 解å³æ±ç¶ä½ä¸å¾çè¾¹æ¡çé´è·é®é¢
*
*
* */
/*------设置Xè½´æ é¢çå¾æç¨åº¦----*/
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setCategoryLabelPositions(CategoryLabelPositions.createUpRotationLabelPositions(Math.E / 6.0));
/*------设置æ±ç¶ä½ä¸å¾çè¾¹æ¡çå·¦å³é´è·--*/
domainAxis.setLowerMargin(0.06);
domainAxis.setUpperMargin(0.06);
/*------设置æ±ç¶ä½ä¸å¾çè¾¹æ¡çä¸ä¸é´è·---*/
ValueAxis rAxis = plot.getRangeAxis();
rAxis.setUpperMargin(0.3);
rAxis.setLowerMargin(0.3);
/*---------设置æ¯ä¸ç»æ±ç¶ä½ä¹é´çé´é---------*/
render.setItemMargin(0.01);
/*
*
* 解å³æ±ç¶ä½ä¸å¾çè¾¹æ¡çé´è·é®é¢
*
*
* */
/*
*
*
* 解å³JFREECHARTçä¸ææ¾ç¤ºé®é¢
*
*
* */
/*----------设置æ¶é¤åä½çé¯é½¿æ¸²æï¼è§£å³ä¸æé®é¢ï¼--------------*/
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
/*----------设置æ é¢åä½--------------------------*/
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("é»ä½", Font.PLAIN, 20));
/*------设置Xè½´åæ ä¸çæå-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11));
/*------设置Xè½´çæ é¢æå------------*/
domainAxis.setLabelFont(new Font("å®ä½", Font.PLAIN, 12));
/*------设置Yè½´åæ ä¸çæå-----------*/
rAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 14));
/*------设置Yè½´çæ é¢æå------------*/
rAxis.setLabelFont(new Font("é»ä½", Font.PLAIN, 12));
/*---------设置æ±ç¶ä½ä¸çæ¾ç¤ºçåä½---------*/
renderer.setBaseItemLabelFont(new Font("å®ä½", Font.PLAIN, 12));
renderer.setBaseItemLabelGenerator(new LabelGenerator(0.0));
renderer.setBaseItemLabelsVisible(true);
/*
*
*
* 解å³JFREECHARTçä¸ææ¾ç¤ºé®é¢
*
*
* */
/*------å¾å°chartçä¿åè·¯å¾----*/
ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
filename = ServletUtilities.saveChartAsPNG(chart, w, h, info,session);
/*------使ç¨printWriterå°æ件ååº----*/
ChartUtilities.writeImageMap(pw, filename, info, true);
pw.flush();
} catch (Exception e) {
System.out.println("Exception - " + e.toString());
e.printStackTrace(System.out);
filename = "public_error_500x300.png";
}
return filename;
}
/*-------------设置æ±ç¶ä½é¡¶ç«¯çæ°æ®æ¾ç¤º--------------*/
static class LabelGenerator implements CategoryItemLabelGenerator {
private double threshold;
public LabelGenerator(double threshold) {
this.threshold = threshold;
}
public String generateLabel(CategoryDataset dataset, int row, int column) {
String result = null;
final Number value = dataset.getValue(row, column);
if (value != null) {
final double v = value.doubleValue();
if (v > this.threshold) {
result = value.toString();
}
}
return result;
}
public String generateRowLabel(CategoryDataset dataset, int row) {
return null;
}
public String generateColumnLabel(CategoryDataset dataset, int column) {
return null;
}
}
/*-----------æ°æ®å°è£
-------------*/
private static CategoryDataset createDataset(ArrayList list) {
String s1 = "1";
String s2 = "2";
String c1 = "1";
String c2 = "2";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.setValue(44, s1, c1);
dataset.setValue(48, s2, c2);
return dataset;
}
}
æ¯è¾å®æ´çä¸ä¸ªå¾å°æ±å¾ç代ç ï¼ä¿åè·¯å¾æ¯ä¸´æ¶æ件ï¼æä¹ä»æ°æ®åºåå¼åºè¯¥ä¼å§ãædatasetå¤çä¸ä¸å°±å¯ä»¥äºã
温馨提示:答案为网友推荐,仅供参考