jfreechartJFreeChart生成 柱线图 的方法
jfreechart 时间:2021-06-16 阅读:(
)
在eclipse下怎么使用jfreechart,详细步骤是什么啊?
有个jfreechart-1.0.12.jar要放到JRE中,jfreechart的版本可能不一样吧。
看你是什么版本的,反正要放进去。
以下是示例程序:
import java.awt.Font;
.jfree.chart.JFreeChart;
.jfree.chart.ChartFactory;
.jfree.chart.ChartFrame;
.jfree.chart.plot.PiePlot;
.jfree.chart.title.TextTitle;
.jfree.data.general.DefaultPieDataset;
public class JFreeChartTest {
public static void main(String[] args) {
DefaultPieDataset dpd = new DefaultPieDataset();
dpd.setValue("管理人员", 25);
dpd.setValue("市场人员", 25);
dpd.setValue("开发人员", 45);
dpd.setValue("其他人员", 5);
JFreeChart chart = ChartFactory.createPieChart("公司组织架构图", dpd, true, true, false);
Font font = new Font("SimSun", 10, 20);
TextTitle txtTitle = null;
txtTitle = chart.getTitle();
txtTitle.setFont(font);
PiePlot pieplot = (PiePlot) chart.getPlot();
pieplot.setLabelFont(font);
chart.getLegend().setItemFont(font);
ChartFrame pieFrame = new ChartFrame("公司组织架构图", chart);
pieFrame.pack();
pieFrame.setFont(font);
pieFrame.setVisible(true);
}
}jfreechart 配置 高手指点
请问你有没有使用IDE(集成开发功具)比如说:Eclipse或是Netbeans再或是JBuilder
如果你都没有使用,只是安装了JDK和JRE那就按如下方法去作吧!
1:jfreechart的安装文件你都备齐了没.它的官方提供的安装文件至少应该包括以下文件jfreechart_0.9.21.zip和mon-0.9.6.zip 这是我所用的版本号.现在估计都到1.0版本了.这里要说的是mon-0.9.6.zip这个安装文件必不可少.
把这两个压缩文件打开,找到我们所需要的三个重要jar文件.它们分别是mon-0.9.6.jar jfreechart-0.9.21.jar 和 gnujaxp.jar
不要多,也不要少.
2:把这三个文件.放在%JAVA_HOME%/lib中去,(这一步你也做了.)请检查你的JAVA_HOME这个环境变量设的对不对.它应该是JDK的安装根目录.拿我的为例,我的JDK安装目录为C:progJavajdk1.5.0_12.注意不是JRE的安装目录.
3:把此时三个文件所在的路径都放到CLASSPATH中去.以JDK安装目录为C:progJavajdk1.5.0_12为例.则需要在CLASSPATH这个环境变量后面附加上以下内容;C:progJavajdk1.5.0_12libjfreechart-0.9.21.jar;C:progJavajdk1.5.0_12libmon-0.9.6.jar;C:progJavajdk1.5.0_12libgnujaxp.jar;
检查你的有没有弄错.
4:最关键一步,如果你前三步都没有搞错,那好恭喜你了.你可能只是操作错误.
现在用一个程序来检验一下.我们刚才的安装.
(请务一定必确认你的JDK和JRE安装正常),办法就是进入命令行.在任何一个目录下
键入java -version并回车.如果返回的java版本信息正常.说明没有问题.
好了,下面测试开始.
在任何一个目录下(现在以C盘根目录下为例)建立一个文件名为PieChart.java文件(名字不要动.因为如下的java文件中类的名字就叫PieChart).内容如下
import java.io.*;
import java.awt.*;
.jfree.chart.*;
.jfree.chart.title.TextTitle;
.jfree.data.general.*;
public class PieChart{
public static void main(String[] args){
String title="老师情况统计";
DefaultPieDataset piedata = new DefaultPieDataset();
piedata.setValue("高级职称",25.5);
piedata.setValue("中级职称",44.1);
piedata.setValue("初级职称及其他",33.4);
JFreeChart chart =ChartFactory.createPieChart(title,piedata,true,true,true);
chart.setTitle(new TextTitle(title,new Font("宋体",Font.ITALIC,25)));
chart.addSubtitle(new TextTitle("最后更新日期:2005年8月5日",new Font("宋体",Font.ITALIC,20)));
chart.setBackgroundPaint(Color.white);
try{
ChartUtilities.saveChartAsJPEG(new File("C:\PieChart.jpg"),chart,600,600);
} catch (IOException exz)
{
System.out.print("Can't Creat image File");
}
}
}
保存.并进入命令行窗口,进入C盘根目录下
键入javac PieChart.java (注意是javac)
来编译这个java文件.
稍等一会儿便会在C盘根目录下生成一个PieChart.class文件.如果这一步成功.就没有问题了.
好了,再运行这个生成的class文件.
键入java PieChart (注意没有.class)
现在,大功告成,去C盘根目录里看一下吧,就会找到这个生成的图片文件---PieChart.jpg
如果,还有其它不明之处,请再与我联系.
其实,还是使用IDE比较方便.建议用Netbeans现在已经6.1版本了.个人认为比较好用.最重要的二点.根正苗好.是sun公司出的.而且是中文版.相信你以后会喜欢的.jfreechart中XYLineAndShapeRenderer 的 setDrawSeriesLineAsPath函数式什么意思,求中文详细解释
public void setDrawSeriesLineAsPath(boolean flag)
Sets the flag that controls whether or not each series is drawn as a single path and sends a RendererChangeEvent to all registered listeners.
设置是否把每个serie当做单独的路径进行绘制。
jfreechart需要用什么包?
看你这个图,并不是因为你没导入jfreechart.jar包造成的。
你这个代码意思是找不到该类(前面有叉号的)。
这个是jfreechart.jar的版本问题。
你用winran打开此包看看,在目标路径肯定没有对应的类包(.class文件)。
不同版本很可能在不同位置上,你在仔细找找吧,不行短JFreeChart生成 柱线图 的方法
最近在一个网逻站,看了几篇文章,觉得很不错,转贴过来^_^不过,暂未贴完,这不允许贴太多,那的东东也不少,还可以申请xxx@的邮箱^_^,大家也可以直接去看:
一 最简单的例子
为了降低门槛,让大家心理有个底,先介绍一个简单的不能再简单的例子,图片中的各类属性都采用默认值。
这个 JSP 程序运行的结果如下图
【回贴】 [原创] 回复:用JFreeChart画统计分析柱状图(贰) 作者:拉萨狼 查看:0 回复:0
[第 2 楼] 发表于3/27/2005 12:4:16
二 柱状图高级特性
上面的程序简单,但生成的柱状图也很简单。
更多的时候,我们可能需要不同的效果。
.jfree.chart.ChartFactory 这个工厂类有 createBarChart, createStackedBarChart, createBarChart3D, createStackedBarChart3D 这几个工厂方法创建不同类型的柱状图。
关于这四个方法的 JFreeChart 的 Java Doc API 文档有详细说明,比较重要的是 PlotOrientation.VERTICAL 让平行柱垂直显示,而 PlotOrientation.HORIZONTAL 则让平行柱水平显示。
几个对柱状图影响较大的几个类,它们分别是:
org.jfree.chart.axis.CategoryAxis
org.jfree.chart.axis.ValueAxis
org.jfree.chart.renderer.BarRenderer
org.jfree.chart.renderer.BarRenderer3D
我们还是以实例来说明这几个类,先来假设一个需要统计的数据表:
北京
上海
广州
成都
深圳
苹果
672
766
223
540
126
梨子
325
521
210
340
106
葡萄
332
256
523
240
526
根据上表数据,首先构造 CategoryDataset, 这里不再使用上面简单例子里面的 DefaultCategoryDataset 类,而是 DatasetUtilities 更有效的构造 CategoryDataset,如下列代码:
double[][] data = new double[][] {{672, 766, 223, 540, 126}, {325, 521, 210, 340, 106}, {332, 256, 523, 240, 526}};
String[] rowKeys = {"苹果","梨子","葡萄"};
String[] columnKeys = {"北京","上海","广州","成都","深圳"};
CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
用上面的 dataset 生成的 3D 柱状图
org.jfree.chart.axis.CategoryAxis
CategoryAxis domainAxis = plot.getDomainAxis();
//设置 columnKey 是否垂直显示
domainAxis.setVerticalCategoryLabels(true);
//设置距离图片左端距离
domainAxis.setLowerMargin(0.1);
//设置距离图片右端距离
domainAxis.setUpperMargin(0.1);
//设置 columnKey 是否间隔显示
domainAxis.setSkipCategoryLabelsToFit(true);
plot.setDomainAxis(domainAxis);
上面代码产生的效果如下图,注意与图二的区别。
org.jfree.chart.axis.ValueAxis
ValueAxis rangeAxis = plot.getRangeAxis();
//设置最高的一个柱与图片顶端的距离
rangeAxis.setUpperMargin(0.15);
//设置最低的一个柱与图片底端的距离
//rangeAxis.setLowerMargin(0.15);
plot.setRangeAxis(rangeAxis);
上面代码产生的效果如下图,注意与图二的区别。
org.jfree.chart.renderer.BarRenderer3D
BarRenderer3D renderer = new BarRenderer3D();
renderer.setBaseOutlinePaint(Color.BLACK);
//设置 Wall 的颜色
renderer.setWallPaint(Color.gray);
//设置每种水果代表的柱的颜色
renderer.setSeriesPaint(0, new Color(0, 0, 255));
renderer.setSeriesPaint(1, new Color(0, 100, 255));
renderer.setSeriesPaint(2, Color.GREEN);
//设置每种水果代表的柱的 Outline 颜色
renderer.setSeriesOutlinePaint(0, Color.BLACK);
renderer.setSeriesOutlinePaint(1, Color.BLACK);
renderer.setSeriesOutlinePaint(2, Color.BLACK);
//设置每个地区所包含的平行柱的之间距离
renderer.setItemMargin(0.1);
//显示每个柱的数值,并修改该数值的字体属性
renderer.setItemLabelGenerator(new StandardCategoryItemLabelGenerator());
renderer.setItemLabelFont(new Font("黑体",Font.PLAIN,12));
renderer.setItemLabelsVisible(true);
上面代码产生的效果如下图,注意与图二的区别。
补充两个有用的方法
补充.jfree.chart.plot.CategoryPlot 的两个方法,这两个方法对所有类型的图表都有作用,因为在前面没有介绍,这里补充一下。
//设置地区、销量的显示位置
plot.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
上面代码产生的效果如下图,注意与图二的区别。
(未完待续……)大家也可以直接去看完,还有图解。
韩国服务器怎么样?韩国云服务器租用推荐?韩国服务器距离中国近,有天然的地域优势,韩国服务器速度快而且非常稳定!有不少有亚洲市场的外贸公司选择韩国服务器开拓业务,韩国服务器因自身的优势也受到不少用户的青睐。目前的IDC市场上,韩国、香港、美国三个地方的服务器几乎占据了海外服务器的百分之九十以上。韩国服务器相比美国服务器来说速度更快,而相比香港机房来说则带宽更充足,占用市场份额非常大。那么,韩国服务器...
Megalayer 商家主营业务是以独立服务器和站群服务器的,后来也陆续的有新增香港、菲律宾数据中心的VPS主机产品。由于其线路的丰富,还是深受一些用户喜欢的,有CN2优化直连线路,有全向国际线路,以及针对欧美的国际线路。这次有看到商家也有新增美国机房的VPS主机,也有包括15M带宽CN2优化带宽以及30M带宽的全向线路。Megalayer 商家提供的美国机房VPS产品,提供的配置方案也是比较多,...
易探云服务器怎么样?易探云是国内一家云计算服务商家,致力香港云服务器、美国云服务器、国内外服务器租用及托管等互联网业务,目前主要地区为运作香港BGP、香港CN2、广东、北京、深圳等地区。目前,易探云推出的国内云服务器优惠活动,国内云服务器2核2G5M云服务器低至330元/年起;成都4核8G/200G硬盘/15M带宽,仅1888元/3年起!易探云便宜vps服务器配置推荐:易探云vps云主机,入门型云...
jfreechart为你推荐
公众号付费阅读怎么利用公众号做知识付费?5e5e5e计算器里5.55556e-5是什么意思shoujiao黑鲨手机SKW一AO怎么解锁?netbios协议tcp/ip、ipx/spx、netbios这三个通信协议的区别netbios协议NETBEUI协议有什么用?sms是什么短信确认码是什么particular教程AE的particular的particle设置driversbackup电脑里有个“Backup”文件夹是干什么的手机在线客服怎样和oppo客服在线交流camel是什么意思Camel骆驼究竟是哪个国家品牌?
购买域名 工信部域名备案系统 warez 新加坡服务器 分销主机 seovip 国内加速器 国内php空间 网通ip 华为网络硬盘 小米数据库 刀片服务器是什么 nerds 百度云1t 重庆双线服务器托管 www789 linode支付宝 lick lamp是什么意思 摩尔庄园注册 更多