jfreechart jfreechart相关的jar包

大数据与人工智能交流头条号为广大初学者增加了C、Ja、Python、Scala、jascript等流行的计算机和大数据编程语言。希望大家以后多多关注这个头条号。

首先,获取图片

JfreeChart组件可以生成jpeg和png格式的图片,其输出方式可以直接存储在硬盘中,也可以由JfreeChart组件管理。在web应用程序中,生成的图形报告通常是动态报告。如果每次都保存生成的图表,会产生大量的垃圾文件,用JfreeChart组件来管理是个不错的选择。

1.配置JFreeChart

JfreeChart组件提供了一个Servlet文件来获取生成的图像。这个Servlet文件存在于JfreeChart组件包中,所以在使用时需要在web.xml中进行配置。

& ltservlet & gt

& ltservlet-name & gt;显示图表& lt/servlet-name & gt;

& ltservlet-class & gt;org . jfree . chart . servlet . display chart & lt;/servlet-class & gt;

& lt/servlet & gt;

& ltservlet映射& gt

& ltservlet-name & gt;显示图表& lt/servlet-name & gt;

& lturl模式& gt/servlet/display chart & lt;/URL-pattern & gt;

& lt/servlet-mapping & gt;

2.获取图片

在输出图片之前,必须先生成由JfreeChart组件绘制的图片。这个操作是通过调用ServletUtilities类的seChartAsJPEG()方法实现的,该方法返回。jpeg格式:

公共静态字符串seChartAsJPEG(JfreeChart chart,int width,int height,HttpSession会话)

用这种方法生成图像后,通过调用注册的JfreeChart提供的Servlet类DisplayChart,可以得到图像的相对路径,例如:

& lt%

string fileName = servlet utilities . sechartasjpeg(

ChartUtil.createChart(),450,300,session);

string graph URL = request . getcontextpath()+& # 34;/DisplayChart?文件名= & # 34;+文件名;

% & gt

上面的代码生成一张宽度为450,高度为300的图片,文件名为fileName,路径为graphURL,通过它可以访问生成的图片。

二、第一个图表案例

第一步:建立项目,引入jar包(jar包已经提供)。项目结构如下:

jfreechart jfreechart相关的jar包

步骤2:创建一个自定义绘图工具类ChartUtil。

公共类ChartUtil {

/**

*创建一个数据集

* @return CategoryDataset对象

*/

public static category dataset create dataset(){

//实例化DefaultCategoryDataset对象

DefaultCategoryDataset dataSet = new DefaultCategoryDataset();

//向数据集合中添加数据

dataSet.addValue(550,& # 34;JaEE & # 34, "Ja EE类& # 34;);

dataSet.addValue(100,& # 34;JaSE & # 34, "Ja SE class & # 34);

dataSet.addValue(950,& # 34;Ja项目& # 34;, "Ja项目类& # 34;);

返回数据集;

}

/**

*创建一个JFreeChart对象

* @return JFreeChart对象

*/

公共静态JFreeChart createChart() {

//创建主题样式

StandardChartTheme StandardChartTheme = new StandardChartTheme(& # 34;CN & # 34);

//设置标题字体

standardcharttheme . setextralargefont(新字体(& # 34;隶书& # 34;,字体。粗体,20));

//设置图例的字体。

standardcharttheme . set regular Font(新字体(& # 34;微软雅黑& # 34;,字体。平原,15));

//设置轴向的字体。

standardcharttheme . setlargefont(新字体(& # 34;微软雅黑& # 34;,字体。平原,15));

chart factory . setchartheme(standardChartTheme);//设置主题样式

//通过ChartFactory创建JFreeChart。

JFreeChart chart = chart factory . createbarchart 3d(

"Ja书籍的销售统计& # 34;,//图表标题

"Ja书籍& # 34;,//水平轴标题

"销售量(本)& # 34;,//垂直轴标题

CreateDataSet(),//数据集

绘图方向。垂直,//图表方向

True,//是否显示图例标识?

True,//是否显示工具提示?

假);//支持超链接吗?

回报图表;

}

}

第三步:JfreeChart提供的Servlet类DisplayChart,带有注册的xml文件。

& lt?xml版本= & # 34;1.0"编码= & # 34;UTF-8 & # 34;?& gt

& ltweb-app版本= & # 34;2.5"

xmlns = & # 34http://ja.sun.com/xml/ns/jaee"

xmlns:xsi = & # 34;http://www.w3.org/2001/XMLSchema-instance"

xsi:schema location = & # 34;http://ja.sun.com/xml/ns/jaee

http://ja.sun.com/xml/ns/jaee/web-app_2_5.xsd"

& ltservlet & gt

& lt描述& gtJFreeChart & lt/description & gt;

& ltservlet-name & gt;显示图表& lt/servlet-name & gt;

& ltservlet-class & gt;org . jfree . chart . servlet . display chart & lt;/servlet-class & gt;

& lt/servlet & gt;

& ltservlet映射& gt

& ltservlet-name & gt;显示图表& lt/servlet-name & gt;

& lturl模式& gt/display chart & lt;/URL-pattern & gt;

& lt/servlet-mapping & gt;

& lt/we B- app & gt;

第四步:写index.jsp输出图。

& lt%@页面语言= & # 34;ja & # 34contentType = & # 34文本/html & # 34;pageEncoding = & # 34GBK & # 34;% & gt

& lt%@个页面导入= & # 34;org . jfree . chart . servlet . servlet utilities,com . test . chart util & # 34;% & gt

& lt!DOCTYPE HTML & gt

& lthtml & gt

& lthead & gt

& lttitle & gtJa书籍的销售统计

& lt/head & gt;

& ltbody & gt

& lt%

string fileName = servlet utilities . sechartasjpeg(chart util . create chart(),450,300,session);

string graph URL = request . getcontextpath()+& # 34;/DisplayChart?文件名= & # 34;+文件名;

% & gt

<img src="<%=graphURL%>" border="1">& ltimg src = & # 34& lt% = graphURL % & gt"border = & # 341"& gt

& lt/body & gt;

& lt/html & gt;

步骤5:部署运行输入,结果如下:

三、图表相关生肖设置

为了使生成的图表美观大方,需要设置绘图区域和坐标轴。

公共类ChartUtil {

/**

*创建一个数据集

* @return CategoryDataset对象

*/

public static category dataset create dataset(){

//实例化DefaultCategoryDataset对象

DefaultCategoryDataset dataSet = new DefaultCategoryDataset();

//添加第一季度数据

dataSet.addValue(6000,& # 34;第一节& # 34;, "Ja SE class & # 34);

dataSet.addValue(3000,& # 34;第一节& # 34;, "Ja ME class & # 34);

dataSet.addValue(12000,& # 34;第一节& # 34;, "Ja EE类& # 34;);

//添加第二季度的数据

dataSet.addValue(8000,& # 34;第二节& # 34;, "Ja SE class & # 34);

dataSet.addValue(4000,& # 34;第二节& # 34;, "Ja ME class & # 34);

dataSet.addValue(6000,& # 34;第二节& # 34;, "Ja EE类& # 34;);

//添加第三季度的数据

dataSet.addValue(5000,& # 34;第三节& # 34;, "Ja SE class & # 34);

dataSet.addValue(4000,& # 34;第三节& # 34;, "Ja ME class & # 34);

dataSet.addValue(8000,& # 34;第三节& # 34;, "Ja EE类& # 34;);

//添加第四季度数据

dataSet.addValue(8000,& # 34;第四节& # 34;, "Ja SE class & # 34);

dataSet.addValue(2000年,& # 34;第四节& # 34;, "Ja ME class & # 34);

dataSet.addValue(9000,& # 34;第四节& # 34;, "Ja EE类& # 34;);

返回数据集;

}

/**

*创建一个JFreeChart对象

* @return JFreeChart对象

*/

公共静态JFreeChart createChart() {

//通过ChartFactory创建JFreeChart。

JFreeChart chart = chart factory . createbarchart 3d(

"Ja书籍的销售统计& # 34;,//图表标题

"Ja书籍& # 34;,//水平轴标题

"销售量(本)& # 34;,//垂直轴标题

CreateDataSet(),//数据集

绘图方向。垂直,//图表方向

True,//是否显示图例标识?

True,//是否显示工具提示?

假);//支持超链接吗?

//背景图片

Image image = null

尝试{

//创建背景图片

image = imageio . read(chart util . class . get resource(& # 34;test.jpg & # 34));

} catch (IOException e) {

e . printstacktrace();

}

//设置标题字体

chart.getTitle()。setFont(新字体(& # 34;隶书& # 34;,字体。粗体,25));

//设置图例类别字体

chart.getLegend()。setItemFont(新字体(& # 34;微软雅黑& # 34;,字体。平原,12));

chart . setbordervisible(true);//设置显示边框

//实例化TextTitle对象

text title subTitle = new text title(& # 34;2012年Ja书籍全国销量统计(Ja SE,Ja ME,Ja EE)& # 34;);

//设置中心显示

subtitle . setvertical alignment(vertical alignment。底部);

chart.addSubtitle(字幕);//添加字幕

//获取绘图区域对象

category plot plot = chart . getcategory plot();

plot . setforeground alpha(0.8F);//设置绘图区域前景色的透明度。

plot . set background alpha(0.5F);//设置绘图区域背景色的透明度。

plot . set background image(image);//设置绘图区域的背景图片

//获取轴对象

category axis category axis = plot . getdomainaxis();

//设置轴标题字体

categoryAxis.setLabelFont(新字体(& # 34;微软雅黑& # 34;,字体。平原,12));

//设置轴刻度值的字体。

categoryAxis.setTickLabelFont(新字体(& # 34;微软雅黑& # 34;,字体。平原,12));

//设置轴标题的旋转角度。

categoryaxis . setcategorylabellations(categorylabellations。UP _ 45);

//获取数据轴对象

value axis value axis = plot . getrangeaxis();

//设置数据轴字体

valueAxis.setLabelFont(新字体(& # 34;微软雅黑& # 34;,字体。平原,12));

//获取图片渲染对象

barrender 3d renderer = new barrender 3d();

renderer . setitemargin(0.32);//设置列间距。

plot.setRenderer(渲染器);//设置图像渲染对象

回报图表;

}

}

“大数据与人工智能交流”的目的

1.把概率统计、线性代数、决策论、最优化理论、博弈论等大数据、人工智能的数学模型变得通俗易懂。

2.让大数据和人工智能涉及的数据结构和算法:分类、聚类、回归算法、概率等算法通俗易懂。

3.最新高科技趋势:数据采集中的智能传感器技术:医疗大数据智能决策分析;物联网,智慧城市等等。

根据初学者的需求,会有C语言、Ja语言、Python语言、Scala函数等主流计算机语言。

根据读者需求,有计算机科学与技术、电子技术、芯片技术等与人工智能相关的基础学科的通俗易懂的文章。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

发表回复

登录后才能评论