Jfreechart中画折线图怎么使折点处突出显示啊

syangnewer 2007-01-20 10:28:39
Jfreechart中画折线图怎么使折点处突出显示啊

就是把那个折点画成一个方框或大的圆点

我现在的程序可以使用就是画不出点的效果,我用的是Jfreechart1.0 没有这个类StandardLegend

请各位帮忙,谢谢啦

************* 1.jsp ***************
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import = "org.jfree.chart.ChartFactory"%>
<%@ page import = "org.jfree.chart.ChartPanel"%>
<%@ page import = "org.jfree.chart.JFreeChart"%>
<%@ page import = "org.jfree.chart.axis.NumberAxis"%>
<%@ page import = "org.jfree.chart.plot.CategoryPlot"%>
<%@ page import = "org.jfree.chart.plot.PlotOrientation"%>
<%@ page import = "org.jfree.chart.renderer.category.LineAndShapeRenderer"%>
<%@ page import = "org.jfree.chart.title.LegendTitle"%>
<%@ page import = "org.jfree.data.category.CategoryDataset"%>
<%@ page import = "org.jfree.data.category.DefaultCategoryDataset"%>
<%@ page import = "org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import = "org.jfree.chart.block.BlockBorder"%>
<%@ page import = "org.jfree.ui.RectangleEdge"%>
<%

// row keys...
String series1 = "First";
String series2 = "Second";
String series3 = "Third";

// column keys...
String type1 = "Type 1";
String type2 = "Type 2";
String type3 = "Type 3";
String type4 = "Type 4";
String type5 = "Type 5";
String type6 = "Type 6";
String type7 = "Type 7";
String type8 = "Type 8";

// create the dataset...
DefaultCategoryDataset dataset = new DefaultCategoryDataset();

dataset.addValue(1.0, "17901", "2006042008");
dataset.addValue(4.0, "17908", "2006042008");
dataset.addValue(3.0, "17909", "2006042008");
dataset.addValue(5.0, "17909", "2006042009");
dataset.addValue(5.0, "17911", "2006042008");
dataset.addValue(7.0, "17951", "2006042008");
dataset.addValue(7.0, "17961", "2006042008");
dataset.addValue(8.0, "17969", "2006042008");
dataset.addValue(8.0, "17991", "2006042008");

dataset.addValue(15.0, "17911", "2006042009");
dataset.addValue(17.0, "17951", "2006042009");
dataset.addValue(17.0, "17961", "2006042009");
dataset.addValue(18.0, "17969", "2006042009");
dataset.addValue(18.0, "17991", "2006042009");



// create the chart...
JFreeChart chart = ChartFactory.createLineChart(
"血压水平分布图", // chart title
"Type", // domain axis label
"Value", // range axis label
dataset, // data
PlotOrientation.VERTICAL, // orientation
true, // include legend
true, // tooltips
true // urls
);

// NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART...
LegendTitle legend = chart.getLegend();
legend.setPosition(RectangleEdge.BOTTOM);
legend.setBorder(BlockBorder.NONE);

/* StandardLegend legend = (StandardLegend) chart.getLegend();
legend.setDisplaySeriesShapes(true);
legend.setShapeScaleX(1.5);
legend.setShapeScaleY(1.5);
legend.setDisplaySeriesLines(true); */
CategoryPlot plot = chart.getCategoryPlot();
// customise the range axis...
NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
rangeAxis.setAutoRangeIncludesZero(true);
rangeAxis.setUpperMargin(0.10);
rangeAxis.setLabelAngle(Math.PI / 10.0);

LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();
//renderer.setItemLabelsVisible(true);
//renderer.setShape(new java.awt.Rectangle(2,2));
renderer.setShape(new java.awt.geom.Ellipse2D.Double(-11.5, -11.5, 13.0, 13.0));
// renderer.setShape(new java.awt.geom.Ellipse2D.Double(-1.5, -1.5, 3.0, 3.0));
plot.setRenderer(renderer);

String filename = ServletUtilities.saveChartAsPNG(chart, 800, 500, null, session);
String graphURL = request.getContextPath() + "/DisplayChart0?filename=" + filename;
System.out.println("filename="+filename);
System.out.println("graphURL="+graphURL);
%>
<img src="<%= graphURL %>" width=800 height=500 border=0 usemap="#<%= filename %>">


***************** End ***************
...全文
2027 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qvr32 2010-12-09
  • 打赏
  • 举报
回复
加上
renderer.setBaseItemLabelGenerator (new StandardCategoryItemLabelGenerator ());
renderer.setItemLabelFont (new Font ("黑体", Font.PLAIN, 12));
renderer.setItemLabelsVisible (true);
ntucz 2007-03-13
  • 打赏
  • 举报
回复
那怎么显示折点的数值呢,请指教下
syangnewer 2007-02-14
  • 打赏
  • 举报
回复
LineAndShapeRenderer renderer = (LineAndShapeRenderer)plot.getRenderer();
renderer.setShapesVisible(true);
renderer.setDrawOutlines(true);
renderer.setUseFillPaint(true);
renderer.setFillPaint(java.awt.Color.white);

加上这些就好了
huacha 2007-02-05
  • 打赏
  • 举报
回复
http://www.wave12.com/web/home.asp

图表组件wsChart4.5(DLL版)
syangnewer 2007-01-22
  • 打赏
  • 举报
回复
我可以画了,但就是折点那里不能突出显示

有没个例子给我看看,谢谢啦


还有怎么让X坐标的刻度按一定的间隔显示,因为太多了,密密麻麻的看不清楚,谢谢
比如1,2,3,4...100
只显示10,20,30,40,...,100

谢谢啦
Jeff的后花园 2007-01-20
  • 打赏
  • 举报
回复
請參考JFreeChart内提供的圖形類,可以new一個出來,有個就是專門畫折圖的類,方便啊!

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧