转载自   JFreeChart气泡图表

本章演示如何使用JFreeChart从一个给定的业务数据创建气泡图表。使用气泡图显示在三维方式的信息。气泡绘制在其中(x,y)坐标相交的地方。气泡的大小被认为是范围或X和Y轴的数量。

业务数据

考虑不同的人的年龄,体重和工作能力可能不太相同。能力可以视为对该被绘制为图表中的气泡的小时数。

WEIGHT

AGE   30 40 50 60 70 80  
10 4           WORK
20   5        
30     10      
40       8    
50         9  
60           6

基于AWT的应用

以下是对从上述给定的信息创建气泡图表的代码。此代码可以帮助嵌入一个气泡图在AWT应用程序。

import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.data.xy.XYZDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;public class BubbleChart_AWT extends ApplicationFrame
{public BubbleChart_AWT( String s ){super( s );                 JPanel jpanel = createDemoPanel( );                 jpanel.setPreferredSize(new Dimension( 560 , 370 ) );                 setContentPane( jpanel ); }private static JFreeChart createChart( XYZDataset xyzdataset ){JFreeChart jfreechart = ChartFactory.createBubbleChart("AGE vs WEIGHT vs WORK",                    "Weight",                    "AGE",                    xyzdataset,                    PlotOrientation.HORIZONTAL,                    true, true, false);XYPlot xyplot = ( XYPlot )jfreechart.getPlot( );                 xyplot.setForegroundAlpha( 0.65F );                 XYItemRenderer xyitemrenderer = xyplot.getRenderer( );xyitemrenderer.setSeriesPaint( 0 , Color.blue );                 NumberAxis numberaxis = ( NumberAxis )xyplot.getDomainAxis( );                 numberaxis.setLowerMargin( 0.2 );                 numberaxis.setUpperMargin( 0.5 );                 NumberAxis numberaxis1 = ( NumberAxis )xyplot.getRangeAxis( );                 numberaxis1.setLowerMargin( 0.8 );                 numberaxis1.setUpperMargin( 0.9 );return jfreechart;}public static XYZDataset createDataset( ){DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset(); double ad[ ] = { 30 , 40 , 50 , 60 , 70 , 80 };                 double ad1[ ] = { 10 , 20 , 30 , 40 , 50 , 60 };                 double ad2[ ] = { 4 , 5 , 10 , 8 , 9 , 6 };                 double ad3[][] = { ad , ad1 , ad2 };                 defaultxyzdataset.addSeries( "Series 1" , ad3 );return defaultxyzdataset; }public static JPanel createDemoPanel( ){JFreeChart jfreechart = createChart( createDataset( ) );                 ChartPanel chartpanel = new ChartPanel( jfreechart );chartpanel.setDomainZoomable( true );                 chartpanel.setRangeZoomable( true );return chartpanel;}public static void main( String args[ ] ){BubbleChart_AWT bubblechart = new BubbleChart_AWT( "Bubble Chart_frame" );   bubblechart.pack( );                 RefineryUtilities.centerFrameOnScreen( bubblechart );                 bubblechart.setVisible( true ); }
}

让我们保存上面的Java代码在BubbleChart_AWT.java文件,然后从命令提示符下编译并运行它,如下所示:

$javac BubbleChart_AWT.java
$java BubbleChart_AW

如果一切顺利,它会编译并运行生成以下气泡图:

创建JPEG图像

让我们重新编写上面的例子,在命令行生成JPEG图像。

import java.io.*;
import java.awt.Color;
import org.jfree.chart.*;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.data.xy.DefaultXYZDataset;
import org.jfree.chart.ChartUtilities;public class BubbleChart_image
{public static void main( String args[ ] )throws Exception{DefaultXYZDataset defaultxyzdataset = new DefaultXYZDataset( );double ad[ ] = { 30 , 40 , 50 , 60 , 70 , 80 };double ad1[ ] = { 10 , 20 , 30 , 40 , 50 , 60 };double ad2[ ] = { 4 , 5 , 10 , 8 , 9 , 6 };double ad3[ ][ ] = { ad , ad1 , ad2 };defaultxyzdataset.addSeries( "Series 1" , ad3 );JFreeChart jfreechart = ChartFactory.createBubbleChart("AGE vs WEIGHT vs WORK", "Weight", "AGE", defaultxyzdataset, PlotOrientation.HORIZONTAL, true, true, false);XYPlot xyplot = ( XYPlot )jfreechart.getPlot( );xyplot.setForegroundAlpha( 0.65F );XYItemRenderer xyitemrenderer = xyplot.getRenderer( );xyitemrenderer.setSeriesPaint( 0 , Color.blue );NumberAxis numberaxis = ( NumberAxis )xyplot.getDomainAxis( );numberaxis.setLowerMargin( 0.2 );numberaxis.setUpperMargin( 0.5 );NumberAxis numberaxis1 = ( NumberAxis )xyplot.getRangeAxis( );numberaxis1.setLowerMargin( 0.8 );numberaxis1.setUpperMargin( 0.9 );int width = 560; /* Width of the image */int height = 370; /* Height of the image */ File bubbleChart = new File("BubbleChart.jpeg"); ChartUtilities.saveChartAsJPEG(bubbleChart,jfreechart,width,height);}
}

让我们保存上面的Java代码在BubbleChart_image.java文件,然后从命令提示符下编译并运行它,如下所示:

$javac BubbleChart_image.java
$java BubbleChart_image

如果一切顺利,它会编译并运行在当前的目录中创建的JPEG图像文件namedBubbleChart.jpeg。

JFreeChart(七)之气泡图表​​​​​​​相关推荐

  1. MFC Windows 程序设计[七十三]之图表的魅力(附源码)

    MFC Windows 程序设计[七十三]之图表的魅力 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以 ...

  2. java jfreechart下载_jfreechart下载-JFreeChart下载安装[java图表插件]-PC下载网

    JFreeChart正式版 JFreeChart正式版是款可以开发各种复杂图表的java图标插件.java图表插件能够开发柱形图.混合图.线图.区域图.分布图.混合图.甘特图以及一些仪表盘等.JFre ...

  3. JFreeChart 生成5种图表(饼图、柱状图、堆叠柱状图、折线图、散点图)

    1 Maven依赖 <!-- Hutool工具包 --> <dependency><groupId>cn.hutool</groupId><art ...

  4. 手把手教你做出数据可视化项目(七)可视化图表数据动态获取及界面跳转

    数据可视化前言:https://blog.csdn.net/diviner_s/article/details/115933789 Apache Echarts简介:https://blog.csdn ...

  5. CBoard框架使用总结七--添加首页图表

    文章内容 原理概括 数据库调整 前端实现 总结 1.原理概括 在实际运用中我们可能不希望首页空白,同时希望用户客户化的配置自己想显示的图表,于是有了文章下面将要谈及的内容. 首先,由于是用户级的设置, ...

  6. Tableau图表(七)-智能显示图表

    文本表 热图 突出显示表 符号地图 地图 饼图 水平条形图 堆栈条形图 并排条形图 树状图 圆视图 并排图 连续折线图 离散折线图 多线折线图 连续面积图 离散面积图 条形图与折线图组合 散点图 直方 ...

  7. Java自动化邮件中发送图表(二)之JFreeChart

    一.JFreeChart库 JFreeChart是JAVA平台上的一个开放的图表绘制类库. JFreeChart可生成饼图(pie charts).柱状图(bar charts).散点图(scatte ...

  8. JFreeChart 图表

    引用:http://wjf118gx.blog.163.com/blog/static/3796915820071110105924465/ JFreeChart是一个Java开源项目,是一款优秀的J ...

  9. FusionCharts--WEB图表技术

    最近项目中需要需要统计图表功能,刚好在网上看到Fusioncharts这个基于Flash的图表组件,功能很强大,效果也很不错.转载一篇介绍文章,原文地址:http://485567.blog.51ct ...

最新文章

  1. Arm Cortex-M4 MCU性能
  2. c++ 开方_刷屏时尚圈!The Story Shoulder稳坐风尚C位的背后究竟有什么奇妙魔力?...
  3. JBPM对象主键生成机制
  4. Windows7-win10开启IPv6亲测最有效方法
  5. IDA Pro 修改默认名称
  6. 断言、触发器、存储过程
  7. 给plt.axvline设置图例(label)
  8. 计算机基础知识二进制转换,计算机基础知识数制转换
  9. icloudbypassca工具win版_Photoshop插件提示无法加载扩展,因为它未经正确签署的解决办法(win/mac)...
  10. mysql磁盘空间满了会崩吗_磁盘空间不够导致mysql崩溃重启
  11. matlab中的灰度直方图及imhist函数
  12. 免费建站网站分享,最好的自助建站
  13. 视频如何批量去除水印
  14. win7服务器未能登录怎么解决,win7系统出现User Profile Service服务未能登录的解决方法...
  15. 解决微博SDK接入全平台支持
  16. c语言数字的写法田字格,数字100田字格怎么写
  17. 【转】Thunderbird on Ubuntu 12.04 – 调整邮件列表行间距
  18. 基于InChat的SpringBoot版本通讯聊天数据存储Demo,附带详细流程说明
  19. 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱
  20. 【技术综述】一文道尽“人脸数据集”(转载)

热门文章

  1. 剑指offer——01二维数组中的查找.
  2. 「offer来了」从基础配置到高级配置,16大知识点带你巩固webpack知识体系
  3. [PAT乙级]1016 部分A+B
  4. [C++STL]C++实现string容器
  5. [剑指offer]面试题23:从上往下打印二叉树
  6. 洛谷 P1122 最大子树和-求树的最大子树权值和
  7. mysql基本架构_MySQL的基本架构
  8. Zookeeper实践与应用--分布式锁实现
  9. zookeeper理解
  10. php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache