jFreeChart问题100分

天天实习 2006-05-27 04:48:08
我做了一个jFreeChart的折线图
但是样式非常难看,
有没有高手原意贴一个设置样式,包括(线,点,横轴,纵轴)的例子
收到后马上结
...全文
449 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zf80230901 2006-05-31
  • 打赏
  • 举报
回复
<!--

功能: JFreeChart实例15: Time Series 图表
-->
<%@ page language="java" contentType="image/png;charset=GB2312"
import="java.awt.*"
import="java.text.*"
import="org.jfree.chart.*"
import="org.jfree.chart.axis.*"
import="org.jfree.chart.servlet.*"
import="org.jfree.chart.plot.*"
import="org.jfree.chart.renderer.*"
import="org.jfree.chart.axis.*"
import="org.jfree.chart.entity.*"
import="org.jfree.chart.labels.*"
import="org.jfree.chart.title.*"
import="org.jfree.chart.renderer.xy.*"
import="org.jfree.data.*"
import="org.jfree.data.xy.*"
import="org.jfree.data.time.*"
import="org.jfree.ui.*"
import="org.jfree.util.*"
%>
<%!
String bookTitle[] = {"Python", "JAVA"};
String chartTitle = "计算机编程类图书2004年月销售量时序统计图";

// 创建数据集
public XYDataset createDataset()
{
TimeSeriesCollection dataset = new TimeSeriesCollection();
TimeSeries ts[] = new TimeSeries[bookTitle.length];
int bookSales = 0;
for (int i =0; i< bookTitle.length; i++)
{
ts[i] = new TimeSeries(bookTitle[i], Month.class);
for (int month = 1; month <= 12; month++)
{
bookSales = 70 + (int)(Math.random() * 100);
ts[i].add(new Month(month, 2004), bookSales);
}
dataset.addSeries(ts[i]);
}

return dataset;
}

public JFreeChart createChart(XYDataset dataset)
{
// 创建图表对象
JFreeChart chart = ChartFactory.createTimeSeriesChart
(
chartTitle, // 图表标题
"统计时间", // 坐标标题
"月销售量", // 坐标标题
dataset, // 定义绘制数据
true, // 定义图表是否包含图例
true, // 定义图表是否包含提示
false // 定义图表是否包含URL
);
return chart;
}
%>
<%
// 创建一个 500X375 的图像
int width=500, height=375;

XYDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);

// 开始自定义图表绘制的相关属性

// 设置整个图表的背景颜色
GradientPaint bgGP = new GradientPaint(0, 0, Color.LIGHT_GRAY,
0, height, Color.WHITE, false);
chart.setBackgroundPaint(bgGP);

// 设置图表对象的绘制属性
XYPlot plot = chart.getXYPlot();

// 自定义图例
StandardLegend sl = (StandardLegend) chart.getLegend();
sl.setDisplaySeriesShapes(true);

// 设置横轴上的时间刻度的显示格式
DateAxis domainAxis = new DateAxis("统计时段:2004年");
DateFormat df = new SimpleDateFormat("yyyy-MM");
DateTickUnit unit = new DateTickUnit(DateTickUnit.MONTH, 1, df);
domainAxis.setTickUnit(unit);
domainAxis.setVerticalTickLabels(true);
plot.setDomainAxis(domainAxis);

StandardXYItemRenderer renderer =
(StandardXYItemRenderer) plot.getRenderer();
renderer.setPlotShapes(true);
renderer.setSeriesShapesFilled(0, Boolean.TRUE);
renderer.setSeriesShapesFilled(1, Boolean.FALSE);

// 结束自定义图表绘制的相关属性

ChartRenderingInfo info =
new ChartRenderingInfo(new StandardEntityCollection());

// 设置图片生成格式
String fileName =
ServletUtilities.saveChartAsPNG(chart, width, height, info, session);

// 设置图片生成路径
String graphURL =
request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;
%>
<HTML>
<HEAD>
<TITLE><%=chartTitle%></TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">
<img src="<%=graphURL %>" border="1" >
</P>
</BODY>
</HTML>

zf80230901 2006-05-31
  • 打赏
  • 举报
回复
<!--

功能: JFreeChart实例11: 自定义线段图
-->
<%@ page language="java" contentType="image/png;charset=GB2312"
import="java.awt.*"
import="org.jfree.chart.*"
import="org.jfree.chart.servlet.*"
import="org.jfree.chart.plot.*"
import="org.jfree.chart.renderer.*"
import="org.jfree.chart.entity.*"
import="org.jfree.chart.title.*"
import="org.jfree.chart.axis.*"
import="org.jfree.chart.renderer.category.LineAndShapeRenderer"
import="org.jfree.data.*"
import="org.jfree.data.general.*"
import="org.jfree.data.category.*"
import="org.jfree.ui.*"
import="org.jfree.util.*"
%>
<%!

String bookTitle[] = {"Python", "JAVA", "C#", "Perl", "PHP"};
String category[] = {"第1周", "第2周", "第3周", "第4周" };
double bookSales;
String chartTitle = "JFreeChart实例11: 自定义线段图";

// 创建数据集
public CategoryDataset createDataset()
{
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
for (int i=0; i < bookTitle.length; i++)
{
for (int j=0; j < category.length; j++ )
{
bookSales = 1 + (Math.random() * 100);
dataset.addValue(bookSales, bookTitle[i], category[j]);
}
}
return dataset;
}

public JFreeChart createChart(CategoryDataset dataset)
{
// 创建图表对象
JFreeChart chart = ChartFactory.createLineChart
(
chartTitle, // 图表标题
"销售时间:2005年2月", // 坐标标题
"销售量", // 坐标标题
dataset, // 定义绘制数据
PlotOrientation.VERTICAL, // 直方图的方向
true, // 定义图表是否包含图例
true, // 定义图表是否包含提示
false // 定义图表是否包含URL
);
return chart;
}
%>
<%
// 创建一个 500X375 的图像
int width=500, height=375;

CategoryDataset dataset = createDataset();
JFreeChart chart = createChart(dataset);


// 开始自定义图表绘制的相关属性

// 设置图表的背景颜色
chart.setBackgroundPaint(new Color(205, 241, 197));

// 自定义图表的标题的字体和颜色
TextTitle title = chart.getTitle();
title.setFont(new Font("汉真广标", Font.BOLD, 25));

// 获得图表对象的引用,用于设置更多的自定义绘制属性
CategoryPlot plot = (CategoryPlot) chart.getPlot();
GradientPaint bg = new GradientPaint(0, 50, new Color(248, 253, 255),
0, 250, new Color(205, 237, 252));
plot.setBackgroundPaint(bg);
plot.setDomainGridlinePaint(Color.BLACK);
plot.setDomainGridlinesVisible(true);
plot.setRangeGridlinePaint(Color.RED);

// 设置横轴标题的字体
CategoryAxis domainAxis = plot.getDomainAxis();
domainAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));

// 设置纵轴标题文字的字体及其旋转方向
ValueAxis rangeAxis = plot.getRangeAxis();
rangeAxis.setLabelFont(new Font("黑体", Font.BOLD, 15));
rangeAxis.setLabelAngle(Math.PI/2);

// 自定义图例的显示风格
StandardLegend legend = (StandardLegend) chart.getLegend();
legend.setDisplaySeriesShapes(true);
legend.setShapeScaleX(1.5);
legend.setShapeScaleY(1.5);
legend.setDisplaySeriesLines(true);

// 获取渲染对象
LineAndShapeRenderer renderer = (LineAndShapeRenderer) plot.getRenderer();

// 自定义线段的绘制颜色
Color color[] = new Color[bookTitle.length];
color[0] = new Color(99,99,0);
color[1] = new Color(255,169,66);
color[2] = new Color(33,255, 66);
color[3] = new Color(33,0,255);
color[4] = new Color(255,0,66);
for (int i = 0; i < color.length; i++)
{
renderer.setSeriesPaint(i, color[i]);
}

// 自定义线段的绘制风格
BasicStroke bs ;
for (int i = 0; i < bookTitle.length; i++)
{
float dashes[] = {10.0f};
bs = new BasicStroke(2.0f, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10.f, dashes, 0.0f);
if (i % 2 != 0)
renderer.setSeriesStroke(i, bs);
else
renderer.setSeriesStroke(i, new BasicStroke(2.0f));
}

// 结束自定义图表绘制的相关属性

ChartRenderingInfo info =
new ChartRenderingInfo(new StandardEntityCollection());

// 设置图片生成格式
String fileName =
ServletUtilities.saveChartAsPNG(chart, width, height, info, session);

// 设置图片生成路径
String graphURL =
request.getContextPath() + "/servlet/DisplayChart?filename=" + fileName;

%>
<HTML>
<HEAD>
<TITLE><%=chartTitle%></TITLE>
</HEAD>
<BODY>
<P ALIGN="CENTER">
<img src="<%=graphURL %>" border="1" >
</P>
</BODY>
</HTML>

天天实习 2006-05-31
  • 打赏
  • 举报
回复
zf80230901(有信念没信仰的家伙) :
真诚感谢你的帮助>
foxox
qq:38671931
hai3qing 2006-05-30
  • 打赏
  • 举报
回复
它自己有文档吧,要不它网站上也会有啊。
chunxiadeng 2006-05-30
  • 打赏
  • 举报
回复
有没有详细介绍jfreechart的使用的
我要用做毕业设计的画图
huabingl 2006-05-30
  • 打赏
  • 举报
回复
jFreeChart是我见过的参数最多的开元项目
wjs2338 2006-05-30
  • 打赏
  • 举报
回复
我只做过饼图,不过我想要好看的话,自己可以设置啊
天天实习 2006-05-29
  • 打赏
  • 举报
回复
我再顶...
达人来了没有!!!!!!!!!!!!!
ruanjiantaotao 2006-05-28
  • 打赏
  • 举报
回复
关注~
天天实习 2006-05-28
  • 打赏
  • 举报
回复
有没有达人呀!!!!!!!
fzlotuscn 2006-05-27
  • 打赏
  • 举报
回复
jFreeChart就是那样的

要好看自己用JAVA写吧! 我就是自己写的!
fanqingfeng 2006-05-27
  • 打赏
  • 举报
回复
我也是没有接触过 帮顶一下 希望更多人帮助你





-----------------------
丰搜网 专搜计算机知识的地方

Web,Photoshop,Dreamweaver, Frontpage,Css,Js,视频,短信sms,彩信MMS,WAP,3G,博客,软件工程,项目管理,让我们关注更多的计算机领域的知识,共享资源,携手共进。

http://www.sosof.com
computerclass 2006-05-27
  • 打赏
  • 举报
回复
这个我不会,帮你顶

67,512

社区成员

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

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