JFreeChart是JAVA平台上的一个开放的图表绘制类库。

首先 (http://www.jfree.org /jfreechart) 总这个网址下载所需要的库,然后解压,放在某个地方。 我们默认的环境是eclipse。

选择项目右键--.>选择BuildPath 然后点击Configure Build Path

在出现的界面右侧 选择 Add External JARs

找到你下载的库打开lib,将所有的jar文件添加进去。这时我们剩下要做的只有写代码。

package jfreechart;

import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset; public class Jfreechartcanshu {
public static void main(String[] args) throws IOException {
final CategoryDataset ds = getDataSet();
final JFreeChart chart = ChartFactory.createBarChart3D("按参数的吞吐率和公平性", // 图表标题
"每次生成猴子个数", // 目录轴的显示标签
"数值", // 数值轴的显示标签
ds, // 数据集
PlotOrientation.VERTICAL, // 图表方向
true, // 是否显示图例,对于简单的柱状图必须为false
false, // 是否生成提示工具
false); // 是否生成url链接 final CategoryPlot categoryplot = (CategoryPlot) chart.getPlot(); final NumberAxis numberaxis = (NumberAxis) categoryplot.getRangeAxis(); final CategoryAxis domainAxis = categoryplot.getDomainAxis(); /*------设置X轴坐标上的文字-----------*/
domainAxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 11)); /*------设置X轴的标题文字------------*/
domainAxis.setLabelFont(new Font("宋体", Font.PLAIN, 12)); /*------设置Y轴坐标上的文字-----------*/
numberaxis.setTickLabelFont(new Font("sans-serif", Font.PLAIN, 12)); /*------设置Y轴的标题文字------------*/
numberaxis.setLabelFont(new Font("黑体", Font.PLAIN, 12)); /*------这句代码解决了底部汉字乱码的问题-----------*/
chart.getLegend().setItemFont(new Font("宋体", Font.PLAIN, 12)); /******* 这句代码解决了标题汉字乱码的问题 ********/
chart.getTitle().setFont(new Font("宋体", Font.PLAIN, 12)); FileOutputStream out = null;
try {
out = new FileOutputStream("./src/Monkey/chart参数.jpg");
ChartUtilities.writeChartAsJPEG(out, 0.5f, chart, 400, 300, null);
} finally {
try {
out.close();
} catch (final Exception ex) {
ex.printStackTrace();
}
}
} private static CategoryDataset getDataSet() {
final DefaultCategoryDataset ds = new DefaultCategoryDataset();
ds.addValue(1.11, "吞吐率", "K=2");
ds.addValue(0.72, "公平性", "K=2");
ds.addValue(1.17, "吞吐率", "K=4");
ds.addValue(0.60, "公平性", "K=4");
ds.addValue(1.53, "吞吐率", "K=6");
ds.addValue(0.65, "公平性", "K=6");
ds.addValue(1.66, "吞吐率", "K=8");
ds.addValue(0.53, "公平性", "K=8");
ds.addValue(1.34, "吞吐率", "K=10");
ds.addValue(0.65, "公平性", "K=10");
return ds;
}
}

这时一个样板,运行后 会在目录下生成.jpg文件,是一个柱状图,改动时只需要将X,Y轴的数值,文字改变。其他的可根据需要进行变动,这样就生成了一个jfreechart图表。我自己运行的结果如下:

如何使用Jfreechart生成柱状图?的更多相关文章

  1. 使用jfreechart生成柱状图、折线图、和饼状图

    JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等使用所设计.下面我就详细介绍如 ...

  2. SSH框架通过JFreeChart实现柱状图和获取项目路径

    获取项目路径:String url= ServletActionContext.getRequest().getRealPath("/upload"); 一.直接生成的图片输出到j ...

  3. JFreeChart 之柱状图

    JFreeChart 之柱状图 一.JFreeChart 简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库.它完全使用JAVA语言编写,是为applications, applets ...

  4. 使用JFreeChart创建柱状图的工具类

    package cn.xfz.oa.util; import java.awt.Font; import java.util.List; import org.jfree.chart.ChartFac ...

  5. 如何用asp.net MVC框架、highChart库从sql server数据库获取数据动态生成柱状图

    如何用asp.net MVC框架.highChart库从sql server数据库获取数据动态生成柱状图?效果大概是这样的,如图: 请问大侠这个这么实现呢?

  6. html5生成柱状图(条形图)

    <html> <canvas id="a_canvas" width="1000" height="700">< ...

  7. 使用poi和jfreechart生成excel图表图片

    最近项目在频繁的操作excel,里边涉及到很多和图表有关的东西.有时候需要使用java操作excel自带的图标,比较复杂的我们都是使用excel模板的形式实现. 除此之外,也有一些功能只需要生成对应的 ...

  8. highCharts+Struts2生成柱状图

    这篇文章主要结合Struts2+json+Highcharts实现动态数据的显示.为了节省时间,就不写数据库了.在action中用一个集合来模拟从数据库取到的数据.模拟数据为三个学生在不同时间成绩的变 ...

  9. JFreeChart生成饼形图(3) (转自 JSP开发技术大全)

    JFreeChart生成饼形图(3) (转自 JSP开发技术大全) 14.3 利用JFreeChart生成饼形图 通过JFreeChart插件,即可以生成普通效果的饼形图,也可以生成3D效果的饼形图: ...

随机推荐

  1. msdn 中MethodBase.Invoke 方法 介绍中的坑

    模块开发总结: c#动态调用webservices 来自网络及使用心得. msdn: MethodBase.Invoke 方法 (Object, Object[]) 使用指定的参数调用当前实例所表示的 ...

  2. Deep Q-Network 学习笔记(六)—— 改进④:dueling dqn

    这篇同样是完全没看懂 Orz,这里只做实现记录.. 要改动的地方只是在神经网络的最后一层做下调整即可. def create(self): neuro_layer_1 = 3 w_init = tf. ...

  3. Android全屏的两种方法

    在开发中我们经常需要把我们的应用设置为全屏,这里我所知道的有俩中方法,一中是在代码中设置,另一种方法是在配置文件里改! 一.在代码中设置: [java] view plain copy package ...

  4. Java多态-如何理解父类引用指向子类对象

    java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”. 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类.我可以通过   Cat c = new ...

  5. java 数据脱敏

    所谓数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护.在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份 ...

  6. Differences between write through and write back

    https://stackoverflow.com/questions/27087912/write-back-vs-write-through

  7. Nginx 反向代理时获取用户的真实 IP

    在平时我们开发后端程序的过程中,应该多多少少都会碰到记录客户端 IP 的场景,例如我之前写过的 APP 用户的一个审计功能,就需要获取用户的 IP 地址:还有广告系统里面,也是需要获取用户的 IP 地 ...

  8. macbook usb口突然不能用 解决方法

    1.先按shift+ctrl+opt+开机键,等待10秒,着10秒是没有反应的,屏幕不会亮,系统不会跑起来.2.10秒过后松开所以的键.3.再按opt+cmd+r+p接着按开机键,这时电脑会不断重启, ...

  9. hallo world

  10. js中innerHTML和innerText的用法

    <div id="test"> <span style="color:red">test1</span> test2 < ...