JFreeChart(二)之饼图

转载自 JFreeChart饼图

在饼图中,每个扇区的弧长成正比它代表的数量。本章演示了如何使用JFreeChart 从一个给定的业务数据创建饼图。

业务数据

下面的例子描述了移动销售饼图。以下是不同移动品牌和销售(每天单位)列表。

S.N.手机品牌销售(天)
1Iphone 5S20
2Samsung Grand20
3MOTO G40
4Nokia Lumia10

基于AWT 应用

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

import javax.swing.JPanel;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;public class PieChart_AWT extends ApplicationFrame 
{public PieChart_AWT( String title ) {super( title ); setContentPane(createDemoPanel( ));}private static PieDataset createDataset( ) {DefaultPieDataset dataset = new DefaultPieDataset( );dataset.setValue( "IPhone 5s" , new Double( 20 ) );  dataset.setValue( "SamSung Grand" , new Double( 20 ) );   dataset.setValue( "MotoG" , new Double( 40 ) );    dataset.setValue( "Nokia Lumia" , new Double( 10 ) );  return dataset;         }private static JFreeChart createChart( PieDataset dataset ){JFreeChart chart = ChartFactory.createPieChart(      "Mobile Sales",  // chart title dataset,        // data    true,           // include legend   true, false);return chart;}public static JPanel createDemoPanel( ){JFreeChart chart = createChart(createDataset( ) );  return new ChartPanel( chart ); }public static void main( String[ ] args ){PieChart_AWT demo = new PieChart_AWT( "Mobile Sales" );  demo.setSize( 560 , 367 );    RefineryUtilities.centerFrameOnScreen( demo );    demo.setVisible( true ); }
}

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

$javac PieChart_AWT.java 
$java PieChart_AWT 

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

 

如果不需要在应用程序嵌入图表中,那么可以在命令提示符下创建图表的图像。 JFreeChart允许以JPG或PNG格式保存图表图像。

JPEG创建图像

让我们重新写上面的例子,生成命令行JPEG图像。以下是通过JFreeChart库,按要求提供两个API,用它来生成PNG或JPEG图像。

saveChartAsPNG() - API用来保存图像为PNG格式。

saveChartAsJPEG() - API用来保存图像JPEG格式。

import java.io.*;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;public class PieChart {public static void main( String[ ] args ) throws Exception{DefaultPieDataset dataset = new DefaultPieDataset( );dataset.setValue("IPhone 5s", new Double( 20 ) );dataset.setValue("SamSung Grand", new Double( 20 ) );dataset.setValue("MotoG", new Double( 40 ) );dataset.setValue("Nokia Lumia", new Double( 10 ) );JFreeChart chart = ChartFactory.createPieChart("Mobile Sales", // chart titledataset, // datatrue, // include legendtrue,false);int width = 640; /* Width of the image */int height = 480; /* Height of the image */ File pieChart = new File( "PieChart.jpeg" ); ChartUtilities.saveChartAsJPEG( pieChart , chart , width , height );}
}

保持PieChart.java文件中如上面的Java代码,然后从命令提示符下编译并运行它,如下所示:

$javac PieChart.java 
$java PieChart 

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

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

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

相关文章

mysql中如何将默认用户名root改成其他?

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

ASP.NET Core - Razor 页面介绍

简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面。在之前的一篇文章中,我们简要介绍了ASP.NET Core Razor 页面。 Razor页面是ASP.NET Core的一个新功能,可以使基于页面的编程方式更容易,更高效。 大众的初步印象是…

P2153-晨跑【费用流,网络流,拆点】

前言 这是评测记录 正题 AC评测记录链接: https://www.luogu.org/record/show?rid7945350 大意 一个图,没错要求不能走重复的边和点。求走最多次的情况下路最短。 解题思路 每次行走就是一个流量在流,然后将边权设为1就可以保证边只能走…

从试卷中悟出的道理……

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

JFreeChart(三)之条形图

转载自 JFreeChart条形图 本章演示了如何使用JFreeChart从一个给定的业务数据创建条形图。 条形图使用不同的方位(水平或垂直)条,以显示不同类别的比较。图表中的一个轴(域轴)示出了特定的域进行比较,并在另一个轴(范围轴)表示的离散值。 业务数据 …

ASP.NET Core 快速入门(实战篇)

上篇讲了《asp.net core在linux上的环境部署》。今天我们将做几个小玩意实战一下。用到的技术和工具有mysql、websocket、AngleSharp(爬虫html解析)、nginx多站点部署。 NO1 留言板(mysql的使用) 演示:http://haojim…

P2053-修车【网络流,费用流】

前言 n和m搞反调半天系列 正题 AC记录链接: https://www.luogu.org/record/show?rid7949136 大意 又m个员工,n辆车,第j个员工修第i辆车需要T[i][j]的时间,求分配让顾客平均等待时间最短。 解题思路 首先先假设一个修车工要修…

走的走的居然飞起来了……

第一次坐飞机,终于满足了我的一个愿望了。记得之前在老家的山头上放羊时,远远的听到飞机想,我和我弟弟能把飞机目送到只剩下一条白线。。。。。一直在定睛观察飞机到底长啥样,那时候对于我们来说,能看见飞机的全面目就…

JFreeChart(四)之线型图

转载自 JFreeChart线型图 线图或折线图来显示信息为一系列由直线段连接的数据点(标记)。线图显示数据在相同的时间频率如何变化。本章从一个给定的业务数据演示如何使用JFreeChart创建线型图。 业务数据 下面的示例绘制折线图显示从1970年开始学校在不同年份开通数量。 给…

如何在Linux上使用VIM进行.Net Core开发

对于在Linux上开发.Net Core的程序员来说, 似乎都缺少一个好的IDE.Windows上有Visual Studio, Mac上有Visual Studio for Mac, 难道Linux只有Visual Studio Code了吗?Linux上有两个最好的编辑器: VIM和Emacs, 哪个更好不是这一篇的主题, 这一篇的主题是如何在Linux上简单的构建…

P2517-订货【网络流,费用流】

正题 AC链接: https://www.luogu.org/record/show?rid7949532 大意 有n个月,每个月商品价格di,需求量Ui。有容量为S的仓库,一个商品汇存一个月要m。求最低成本 解题思路 首先是月份做为点,成本作为费用&#xff0…

教学交流研讨会总结(一)

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

JFreeChart(五)之XY图

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

服务环境搭建

文章目录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 平台上的投资&#…