JFreeChart(七)之气泡图表
转载自 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(七)之气泡图表相关推荐
- MFC Windows 程序设计[七十三]之图表的魅力(附源码)
MFC Windows 程序设计[七十三]之图表的魅力 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries),以 ...
- java jfreechart下载_jfreechart下载-JFreeChart下载安装[java图表插件]-PC下载网
JFreeChart正式版 JFreeChart正式版是款可以开发各种复杂图表的java图标插件.java图表插件能够开发柱形图.混合图.线图.区域图.分布图.混合图.甘特图以及一些仪表盘等.JFre ...
- JFreeChart 生成5种图表(饼图、柱状图、堆叠柱状图、折线图、散点图)
1 Maven依赖 <!-- Hutool工具包 --> <dependency><groupId>cn.hutool</groupId><art ...
- 手把手教你做出数据可视化项目(七)可视化图表数据动态获取及界面跳转
数据可视化前言:https://blog.csdn.net/diviner_s/article/details/115933789 Apache Echarts简介:https://blog.csdn ...
- CBoard框架使用总结七--添加首页图表
文章内容 原理概括 数据库调整 前端实现 总结 1.原理概括 在实际运用中我们可能不希望首页空白,同时希望用户客户化的配置自己想显示的图表,于是有了文章下面将要谈及的内容. 首先,由于是用户级的设置, ...
- Tableau图表(七)-智能显示图表
文本表 热图 突出显示表 符号地图 地图 饼图 水平条形图 堆栈条形图 并排条形图 树状图 圆视图 并排图 连续折线图 离散折线图 多线折线图 连续面积图 离散面积图 条形图与折线图组合 散点图 直方 ...
- Java自动化邮件中发送图表(二)之JFreeChart
一.JFreeChart库 JFreeChart是JAVA平台上的一个开放的图表绘制类库. JFreeChart可生成饼图(pie charts).柱状图(bar charts).散点图(scatte ...
- JFreeChart 图表
引用:http://wjf118gx.blog.163.com/blog/static/3796915820071110105924465/ JFreeChart是一个Java开源项目,是一款优秀的J ...
- FusionCharts--WEB图表技术
最近项目中需要需要统计图表功能,刚好在网上看到Fusioncharts这个基于Flash的图表组件,功能很强大,效果也很不错.转载一篇介绍文章,原文地址:http://485567.blog.51ct ...
最新文章
- Arm Cortex-M4 MCU性能
- c++ 开方_刷屏时尚圈!The Story Shoulder稳坐风尚C位的背后究竟有什么奇妙魔力?...
- JBPM对象主键生成机制
- Windows7-win10开启IPv6亲测最有效方法
- IDA Pro 修改默认名称
- 断言、触发器、存储过程
- 给plt.axvline设置图例(label)
- 计算机基础知识二进制转换,计算机基础知识数制转换
- icloudbypassca工具win版_Photoshop插件提示无法加载扩展,因为它未经正确签署的解决办法(win/mac)...
- mysql磁盘空间满了会崩吗_磁盘空间不够导致mysql崩溃重启
- matlab中的灰度直方图及imhist函数
- 免费建站网站分享,最好的自助建站
- 视频如何批量去除水印
- win7服务器未能登录怎么解决,win7系统出现User Profile Service服务未能登录的解决方法...
- 解决微博SDK接入全平台支持
- c语言数字的写法田字格,数字100田字格怎么写
- 【转】Thunderbird on Ubuntu 12.04 – 调整邮件列表行间距
- 基于InChat的SpringBoot版本通讯聊天数据存储Demo,附带详细流程说明
- 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱
- 【技术综述】一文道尽“人脸数据集”(转载)
热门文章
- 剑指offer——01二维数组中的查找.
- 「offer来了」从基础配置到高级配置,16大知识点带你巩固webpack知识体系
- [PAT乙级]1016 部分A+B
- [C++STL]C++实现string容器
- [剑指offer]面试题23:从上往下打印二叉树
- 洛谷 P1122 最大子树和-求树的最大子树权值和
- mysql基本架构_MySQL的基本架构
- Zookeeper实践与应用--分布式锁实现
- zookeeper理解
- php 接口缓存,php写的一个缓存接口demo,兼容redis和memcache