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);
上面代码产生的效果如下图,注意与图二的区别。
(未完待续……)大家也可以直接去看完,还有图解。
全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技郴州市湘南科技有限公司官方网址:www.xiangnankeji.cn产品内容:全球独立服务器、站群多IP服务器、VPS(哪个国家都有),香港、美国、日本、韩国、新加坡、越南、泰国、加拿大、英国、德国、法国等等99元起步,湘南科技VPS价格表:独立服...
HostHatch在当地时间7月30日发布了一系列的促销套餐,涉及亚洲和欧美的多个地区机房,最低年付15美元起,一次买2年还能免费升级双倍资源。商家成立于2011年,提供基于KVM架构的VPS主机,数据中心包括中国香港、美国、英国、荷兰、印度、挪威、澳大利亚等国家的十几个地区机房。官方网站:https://hosthatch.com/NVMe VPS(香港/悉尼)1 CPU core (12.5%...
快云科技已稳步运行进两年了 期间没出现过线路不稳 客户不满意等一系列问题 本司资质齐全 持有IDC ICP ISP等正规手续 有独特的网站设计理念 在前几天刚是参加过魔方系统举行的设计大赛拿获最佳设计奖第一名 本公司主营产品 香港弹性云服务器,美国vps和日本vps,香港物理机,国内高防物理机以及美国日本高防物理机 2020年的国庆推出过一款香港的回馈用户特惠机 已作为传家宝 稳定运行 马上又到了...
jfreechart为你推荐
ico监管BTCB是什么?pat是什么格式photoshop填充图案是pat格式,需用什么软件打开?请高人指点,谢谢~云输入法QQ云输入法的候选窗口是什么样的?音乐代码css控制背景音乐代码动画分镜头脚本请问什么是动画分镜头脚本,什么是电影分镜头脚本以及什么是广告分镜头脚本?特斯拉model3降价特斯拉股价为何暴跌?彩信平台请问彩信平台升级怎么改参数能告诉我具体步骤吗?彩信平台目前国内有哪些短信平台服务商,怎么排名?在线沟通网络沟通的问题有哪些flash序列号Flash软件 的序列号是什么?
sugarhosts justhost godaddy支付宝 长沙服务器 丹弗 卡巴斯基永久免费版 智能骨干网 什么是刀片服务器 nerds 1g内存 tna官网 qq对话框 免费申请个人网站 t云 上海联通宽带测速 登陆空间 便宜空间 主机管理系统 广州虚拟主机 免费网络 更多