JFreeChart(五)之XY图

转载自  JFreeChart XY图

在xy图(散点图)是根据一个数据系列组成的x和y值的列表。每个值对(x,y)是坐标系中的一个点。这里1值确定水平(X)位置,而另一个确定垂直(Y)位置。本章演示了如何使用JFreeChart从一个给定的业务数据创建XY图表。

业务数据

考虑这种情况,我们要创建一个XY图表所有主要浏览器的一个例子。在这里,不同的性能分数是从不同类型的人们聚集,如下所示:

FirefoxCategory(X)Score(Y)
1.01.0
2.04.0
3.03.0
ChromeCategory(X)Score(Y)
1.04.0
2.05.0
3.06.0
IECategory(X)Score(Y)
3.04.0
4.05.0
5.04.0

基于AWT的应用

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

import java.awt.Color; 
import java.awt.BasicStroke; 
import org.jfree.chart.ChartPanel; 
import org.jfree.chart.JFreeChart; 
import org.jfree.data.xy.XYDataset; 
import org.jfree.data.xy.XYSeries; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 
import org.jfree.chart.plot.XYPlot; 
import org.jfree.chart.ChartFactory; 
import org.jfree.chart.plot.PlotOrientation; 
import org.jfree.data.xy.XYSeriesCollection; 
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;public class XYLineChart_AWT extends ApplicationFrame 
{public XYLineChart_AWT( String applicationTitle, String chartTitle ){super(applicationTitle);JFreeChart xylineChart = ChartFactory.createXYLineChart(chartTitle ,"Category" ,"Score" ,createDataset() ,PlotOrientation.VERTICAL ,true , true , false);ChartPanel chartPanel = new ChartPanel( xylineChart );chartPanel.setPreferredSize( new java.awt.Dimension( 560 , 367 ) );final XYPlot plot = xylineChart.getXYPlot( );XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer( );renderer.setSeriesPaint( 0 , Color.RED );renderer.setSeriesPaint( 1 , Color.GREEN );renderer.setSeriesPaint( 2 , Color.YELLOW );renderer.setSeriesStroke( 0 , new BasicStroke( 4.0f ) );renderer.setSeriesStroke( 1 , new BasicStroke( 3.0f ) );renderer.setSeriesStroke( 2 , new BasicStroke( 2.0f ) );plot.setRenderer( renderer ); setContentPane( chartPanel ); }private XYDataset createDataset( ){final XYSeries firefox = new XYSeries( "Firefox" );          firefox.add( 1.0 , 1.0 );          firefox.add( 2.0 , 4.0 );          firefox.add( 3.0 , 3.0 );          final XYSeries chrome = new XYSeries( "Chrome" );          chrome.add( 1.0 , 4.0 );          chrome.add( 2.0 , 5.0 );          chrome.add( 3.0 , 6.0 );          final XYSeries iexplorer = new XYSeries( "InternetExplorer" );          iexplorer.add( 3.0 , 4.0 );          iexplorer.add( 4.0 , 5.0 );          iexplorer.add( 5.0 , 4.0 );          final XYSeriesCollection dataset = new XYSeriesCollection( );          dataset.addSeries( firefox );          dataset.addSeries( chrome );          dataset.addSeries( iexplorer );return dataset;}public static void main( String[ ] args ) {XYLineChart_AWT chart = new XYLineChart_AWT("Browser Usage Statistics", "Which Browser are you using?");chart.pack( );          RefineryUtilities.centerFrameOnScreen( chart );          chart.setVisible( true ); }
}

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

$javac XYLineChart_AWT.java 
$java XYLineChart_AWT 

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

 

创建JPEG图像

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

import java.io.*;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.xy.XYSeries;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.xy.XYSeriesCollection;
import org.jfree.chart.ChartUtilities; public class XYLineChart_image
{public static void main( String[ ] args )throws Exception{final XYSeries firefox = new XYSeries( "Firefox" );firefox.add( 1.0 , 1.0 );firefox.add( 2.0 , 4.0 );firefox.add( 3.0 , 3.0 );final XYSeries chrome = new XYSeries( "Chrome" );chrome.add( 1.0 , 4.0 );chrome.add( 2.0 , 5.0 );chrome.add( 3.0 , 6.0 );final XYSeries iexplorer = new XYSeries( "InternetExplorer" );iexplorer.add( 3.0 , 4.0 );iexplorer.add( 4.0 , 5.0 );iexplorer.add( 5.0 , 4.0 );final XYSeriesCollection dataset = new XYSeriesCollection( );dataset.addSeries( firefox );dataset.addSeries( chrome );dataset.addSeries( iexplorer );JFreeChart xylineChart = ChartFactory.createXYLineChart("Browser usage statastics", "Category","Score", dataset,PlotOrientation.VERTICAL, true, true, false);int width = 640; /* Width of the image */int height = 480; /* Height of the image */ File XYChart = new File( "XYLineChart.jpeg" ); ChartUtilities.saveChartAsJPEG( XYChart, xylineChart, width, height);}
}

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

$javac XYLineChart_image.java 
$java XYLineChart_image 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/324158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

服务环境搭建

文章目录Nacos服务搭建一、nacos-server 环境搭建二、nacos-mysql 环境搭建三、建 领域模型REST访问配置(给其他语言使用)四、nacos-server 集群搭建Nacos服务搭建 一、nacos-server 环境搭建 1、 [nacos-server主机](考虑到后续开发的问题…

p2762-太空飞行计划问题【网络流,最大权闭合图,最小割】

正题 AC评测记录链接: https://www.luogu.org/record/show?rid7965757 大意 有nn个实验,有m" role="presentation">mm个实验器材的集合GG。完成第i" role="presentation">ii个实验可以获得cici元,第ii个实验需…

ASP.NET Core 源码学习之Logging[1]:Introduction

在ASP.NET 4.X中,我们通常使用 log4net, NLog 等来记录日志,但是当我们引用的一些第三方类库使用不同的日志框架时,就比较混乱了。而在 ASP.Net Core 中内置了日志系统,并提供了一个统一的日志接口,ASP.Net Core 系统以…

全国教学交流研讨会“教学为本”主题总结

大家好,我是雄雄,欢迎关注公众号【雄雄的小课堂】。最近,我的个人站上线啦,大家可以直接在浏览器的地址栏中输入:穆雄雄.com,轻轻敲击回车,即可直接进入……

JFreeChart(六)之3D饼图/条形图

转载自 JFreeChart 3D饼图/条形图 三维/3D图表是那些显示在一个三维格式。可以使用这些图表来提供更好的显示效果和清晰的信息。三维/3D饼图是饼图另外一个不错的3D效果。 3D效果可以通过添加一些额外的代码来实现,它会创建一个饼图3D效果。 3D饼图 请看下面的…

P2598-狼和羊的故事【最大流,最小割】

正题 评测记录: https://www.luogu.org/recordnew/lists?uid52918&pidP2598 大意 有n*m的矩阵,里面有羊和狼(也有可能是空),可以在两个格子之间围上篱笆让两个格子不能互相到达,要求狼的格子不能和羊的格子在同一个联通块…

.NET Core 2.0 正式发布信息汇总

万众瞩目的.NET Core 2.0终于发布了,原定于9.19的dotnetconf大会的发布时间大大提前了1个月,.NET Core 2.0/.NET Standard 2.0的正式发布是.NET 开源跨平台的一个重大里程碑, 可以激活庞大的10几年以来各大公司和社区.NET 平台上的投资&#…

JFreeChart(七)之气泡图表​​​​​​​

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

家校共建,用心教学

大家好,我是雄雄,欢迎关注公众号【雄雄的小课堂】。最近,我的个人站上线啦,大家可以直接在浏览器的地址栏中输入:穆雄雄.com,轻轻敲击回车,即可直接进入……

2018/7/6-纪中某C组题【jzoj1192,jzoj1397,jzoj1736】

前言 全体爆零,十分开心 正题 T1:矩阵 大意 就是N个矩阵,然后进行矩阵乘法(n∗mn∗m和m∗pm∗p的矩阵相乘就会变成n∗pn∗p的矩阵并且运算次数是n∗m∗pn∗m∗p),然后求最小乘法运算次数。 考试时 一直以为会是图论&#xff…

ASP.NET Core - Razor页面之Handlers处理方法

简介 在前一篇文章中,我们讨论了Razor页面。今天我们来谈谈处理方法(Handlers)。我们知道可以将代码和模型放在 .cshtml 文件里面或与 .cshtml 匹配的 .cshtml.cs 文件中。Razor页面处理程序或处理方法将用户请求匹配到我们的方法&#xff1…

JFreeChart(八)之时序图

转载自 JFreeChart时序图 时序图表显示的数据点在相等的时间间隔序列变化。本章演示了如何从一个给定的业务数据使用JFreeChart,建立时序图。 业务数据 让我们考虑通过使用标准 Java API 的 Math.random()产生的各种随机数。我们使用这些数字产生一个时间序列图…

立德树人

大家好,我是雄雄,欢迎关注公众号【雄雄的小课堂】。最近,我的个人站上线啦,大家可以直接在浏览器的地址栏中输入:穆雄雄.com,轻轻敲击回车,即可直接进入……

.NET Standard 2.0 特性介绍和使用指南

前言 早上起来.NET社区沸腾了,期待已久的.NET Core 2.0终于发布!根据个人经验,微软的产品一般在2.0时会趋于成熟,所以一个新的.Net开发时代已经来临!未来属于.NET Core。 对于.NET Core 2.0的发布介绍,围绕…

2018/7/7-纪中某C组题【jzoj1494,jzoj1495,jzoj1496,jzoj1497】

前言 290卡成145&#xff0c;十分开心。 正题 T1&#xff1a;密码 大意 N个数乘起来 考试时 看起来十分简单的高精乘单精 解题思路 10241024其实是10241024高精乘高精了解一下&#xff0c;30分QAQ 代码(高精乘高精我就不解释了吧) #include<cstdio> #include<…

加油四班!加油佟穆!我们的征途是星辰大海!!!

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号【雄雄的小课堂】首先&#xff0c;感谢佟老师与范老师&#xff0c;在我不在的时候&#xff0c;三班的就业和四班的学习都落在了两位老师的肩头&#xff0c;其次&#xff0c;还需要特别感谢冯老师&#xff0c;能抽时间…

JFreeChart(一)之架构

转载自 JFreeChart架构 本章介绍给大家介绍 JFreeChart 不同类中如何交互的概念, JFreeChart基本类层次和应用水平的架构在基于Java应用程序如何工作的。 类层次架构 类层次架构解释了如何把不同阶层的相互库交互&#xff0c;以创建不同类型的图表。 以下是在上述框图中使用…

体验 PHP under .NET Core

昨天在 The week in .NET 中发现 Scott Hanselman 的这篇博文 Peachpie - Open Source PHP Compiler to .NET and WordPress under ASP.NET Core&#xff0c;知道了 Peachpie PHP 编译器加入了 .NET 基金会&#xff0c;借助 Peachpie &#xff0c;.NET Core 已经支持 PHP 。 今…

上学的你,是不是最怕老师给家长打电话……

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号&#xff1a;雄雄的小课堂。今天&#xff0c;做了个重要的工作&#xff0c;趁着五一这个假期&#xff0c;准备和每个家长都通一次话&#xff0c;将学生在学习情况给家长说明一下&#xff0c;站在我的角度&#xff0c;也从…

2018/7/8-纪中某C组题【jzoj1619,jzoj1620,jzoj1621,jzoj1622】

前言 分数250250&#xff0c;十分开心 正题 T1&#xff1a;音乐节拍 洛谷题目链接&#xff1a;https://www.luogu.org/problemnew/show/P2969 大意 有n段音乐&#xff0c;每段音乐持续时间不同&#xff0c;q个询问求一个时间点再放那首歌 考试时 开始时发现询问的时间点不…