[align=left][/align][color=indigo][color=indigo][size=small]
public String getJFreeChatPhoto(List list) {
try {
io.getRequest().setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String title = "";
String xt = "\u65E5\u671F";
String yt = "\u5361\u8DEF\u91CC(\u5927\u5361)";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
Iterator<UserFoodRecordBean> it = list.iterator();
while (it.hasNext()) {
UserFoodRecordBean re = it.next();
dataset.addValue(re.getCaloriesimple(), "Classes", re
.getUserfoodDate());
}
JFreeChart chart = ChartFactory.createLineChart("", xt, yt, dataset,
PlotOrientation.VERTICAL, false, true, false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
plot.setBackgroundPaint(Color.WHITE);
plot
.setNoDataMessage("\u60A8\u9084\u6C92\u6709\u4EFB\u4F55\u98F2\u98DF\u8A18\u9304");
plot.setNoDataMessageFont(new Font("", Font.BOLD, 14));
plot.setNoDataMessagePaint(new Color(154, 207, 136));
plot.setAxisOffset(new RectangleInsets(0d, 0d, 0d, 5d)); // 设置轴距离面板的边距。(这样可以避免显示不全的问题).
ValueMarker valuemarker = new ValueMarker(getStaticCalorie()); [color=orange]//画出标识定值,显示出一条直线,并且可以在直线附近标记内容,用setLabel(String str);[/color] // valuemarker.setLabelOffsetType(LengthAdjustmentType.NO_CHANGE);
valuemarker.setPaint(Color.red);
valuemarker.setStroke(new BasicStroke(1.0F));
valuemarker.setLabel("\u975C\u614B\u80FD\u91CF\u6D88\u8017\u503C");
valuemarker.setLabelFont(new Font("SansSerif", 0, 11));
valuemarker.setLabelPaint(Color.BLUE);
valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
valuemarker.setLabelOffset(new RectangleInsets(5, 5, 5, 5));
[color=red]float [] f={2,4,2,4};[/color]
valuemarker.setStroke(new BasicStroke(2.0f,1,1,0,[color=red]f[/color],1.0f)); //setStroke是创建实线对象,如果在第五个参数为float[]情况下则是虚线效果。这里是虚线效果。
plot.addRangeMarker(valuemarker, Layer.BACKGROUND);
LineAndShapeRenderer ren = (LineAndShapeRenderer) plot.getRenderer();
ren.setSeriesShapesVisible(0, true); // 第一条线显示折点,第二条不设置该属性就表示不显示。
ren.setBaseLinesVisible(true);
ren.setSeriesPaint(0, new Color(154, 207, 136));// 设置线条的颜色。
ren.setSeriesLinesVisible(1, true);
ren.setBaseItemLabelsVisible(true);
ren.setStroke(new BasicStroke(3.0f),false);这个属性是调整折线的粗细。new BasicStroke(float a,)可以创建实线和虚线的实例。
HttpServletRequest request = io.getRequest();
String filename = "";
String graphURL = "";
try {
filename = ServletUtilities.saveChartAsPNG(chart, 750, 230, null,
io.getSession());
graphURL = request.getContextPath() + "/displayChart?filename="
+ filename;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
io.setData("filename", filename, BeanShare.BEAN_SHARE_REQUEST);
io.setData("graphURL", graphURL, BeanShare.BEAN_SHARE_REQUEST);
return graphURL;
}[/size][/color][/color]
[img][/img]
public String getJFreeChatPhoto(List list) {
try {
io.getRequest().setCharacterEncoding("UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String title = "";
String xt = "\u65E5\u671F";
String yt = "\u5361\u8DEF\u91CC(\u5927\u5361)";
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
Iterator<UserFoodRecordBean> it = list.iterator();
while (it.hasNext()) {
UserFoodRecordBean re = it.next();
dataset.addValue(re.getCaloriesimple(), "Classes", re
.getUserfoodDate());
}
JFreeChart chart = ChartFactory.createLineChart("", xt, yt, dataset,
PlotOrientation.VERTICAL, false, true, false);
chart.setBackgroundPaint(Color.WHITE);
CategoryPlot plot = (CategoryPlot) chart.getPlot();
plot.setRangeGridlinePaint(Color.LIGHT_GRAY);
plot.setDomainGridlinePaint(Color.LIGHT_GRAY);
plot.setBackgroundPaint(Color.WHITE);
plot
.setNoDataMessage("\u60A8\u9084\u6C92\u6709\u4EFB\u4F55\u98F2\u98DF\u8A18\u9304");
plot.setNoDataMessageFont(new Font("", Font.BOLD, 14));
plot.setNoDataMessagePaint(new Color(154, 207, 136));
plot.setAxisOffset(new RectangleInsets(0d, 0d, 0d, 5d)); // 设置轴距离面板的边距。(这样可以避免显示不全的问题).
ValueMarker valuemarker = new ValueMarker(getStaticCalorie()); [color=orange]//画出标识定值,显示出一条直线,并且可以在直线附近标记内容,用setLabel(String str);[/color] // valuemarker.setLabelOffsetType(LengthAdjustmentType.NO_CHANGE);
valuemarker.setPaint(Color.red);
valuemarker.setStroke(new BasicStroke(1.0F));
valuemarker.setLabel("\u975C\u614B\u80FD\u91CF\u6D88\u8017\u503C");
valuemarker.setLabelFont(new Font("SansSerif", 0, 11));
valuemarker.setLabelPaint(Color.BLUE);
valuemarker.setLabelAnchor(RectangleAnchor.TOP_LEFT);
valuemarker.setLabelTextAnchor(TextAnchor.BOTTOM_LEFT);
valuemarker.setLabelOffset(new RectangleInsets(5, 5, 5, 5));
[color=red]float [] f={2,4,2,4};[/color]
valuemarker.setStroke(new BasicStroke(2.0f,1,1,0,[color=red]f[/color],1.0f)); //setStroke是创建实线对象,如果在第五个参数为float[]情况下则是虚线效果。这里是虚线效果。
plot.addRangeMarker(valuemarker, Layer.BACKGROUND);
LineAndShapeRenderer ren = (LineAndShapeRenderer) plot.getRenderer();
ren.setSeriesShapesVisible(0, true); // 第一条线显示折点,第二条不设置该属性就表示不显示。
ren.setBaseLinesVisible(true);
ren.setSeriesPaint(0, new Color(154, 207, 136));// 设置线条的颜色。
ren.setSeriesLinesVisible(1, true);
ren.setBaseItemLabelsVisible(true);
ren.setStroke(new BasicStroke(3.0f),false);这个属性是调整折线的粗细。new BasicStroke(float a,)可以创建实线和虚线的实例。
HttpServletRequest request = io.getRequest();
String filename = "";
String graphURL = "";
try {
filename = ServletUtilities.saveChartAsPNG(chart, 750, 230, null,
io.getSession());
graphURL = request.getContextPath() + "/displayChart?filename="
+ filename;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
io.setData("filename", filename, BeanShare.BEAN_SHARE_REQUEST);
io.setData("graphURL", graphURL, BeanShare.BEAN_SHARE_REQUEST);
return graphURL;
}[/size][/color][/color]
[img][/img]