JFreeChart折线图(用ValueMarker标识定值)

[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]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值