JFreeChart - PieChartTest.java

原创 2006年05月17日 13:13:00

import java.awt.Dimension;
import javax.swing.JPanel;
import org.jfree.chart.*;
import org.jfree.chart.plot.PiePlot3D;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.ui.ApplicationFrame;
import org.jfree.ui.RefineryUtilities;
import org.jfree.util.Rotation;
import org.jfree.chart.labels.PieToolTipGenerator;
import org.jfree.chart.labels.StandardPieItemLabelGenerator;
import org.jfree.chart.labels.PieSectionLabelGenerator;
import java.awt.Insets;
import rewin.tools.reportStat.PiePlot3DCustom;
import rewin.tools.reportStat.CustomLegend;

public class PieChartTest extends ApplicationFrame {
  public PieChartTest(String s) {
    super(s);
    PieDataset pieDataset = createDataset();
    JFreeChart freeChart = createChart(pieDataset);
    ChartPanel chartPanel = new ChartPanel(freeChart);
    chartPanel.setPreferredSize(new Dimension(180, 120));
    setContentPane(chartPanel);
  }

  private static PieDataset createDataset() {
    DefaultPieDataset dataset = new DefaultPieDataset();
    System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    //dataset.setValue("Nokia", new Double(40));
    //System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    dataset.setValue("Moto", new Double(30));
    dataset.setValue("三星", new Double(20));
    dataset.setValue("西门子", new Double(10));
    dataset.setValue("波导", new Double(5));
    dataset.setValue("联想", new Double(5));
    dataset.setValue("其他", new Double(5));
    //dataset.setValue("无投诉", new Double(1));
    System.out.println("dataset.getItemCount() = " + dataset.getItemCount());
    return dataset;
  }

  private static JFreeChart createChart(PieDataset pieDataset) {
    //JFreeChart freeChart = ChartFactory.createPieChart3D("手机黑榜", pieDataset, true, false, false);
    //JFreeChart freeChart = ChartFactory.createPieChart3D("", pieDataset, true, false, false);

    PiePlot3DCustom piePlot3D = new PiePlot3DCustom(pieDataset);
    int index = pieDataset.getIndex("无投诉");
    System.out.println("index = " + index);
    System.out.println(pieDataset.getKey(0));

    piePlot3D.setInsets(new Insets(0, 0, 0, 0));
    //piePlot3D.setSectionPaint(0, new java.awt.Color(0x88EEFA));
    piePlot3D.setSectionPaint(0, new java.awt.Color(0x56D0F5));
    //piePlot3D.setSectionPaint(1, new java.awt.Color(0xBEEC56));
    piePlot3D.setSectionPaint(1, new java.awt.Color(0x51E050));
    //piePlot3D.setSectionPaint(2, new java.awt.Color(0xFACBDB));
    piePlot3D.setSectionPaint(2, new java.awt.Color(0xE6315C));
    //piePlot3D.setSectionPaint(3, new java.awt.Color(0xFEF29E));
    piePlot3D.setSectionPaint(3, new java.awt.Color(0xFCC938));
    //piePlot3D.setSectionPaint(4, new java.awt.Color(0xFD9BF0));
    piePlot3D.setSectionPaint(4, new java.awt.Color(0xED36C2));
    //piePlot3D.setSectionPaint(5, java.awt.Color.orange);
    //piePlot3D.setSectionPaint(6, java.awt.Color.magenta);
    //piePlot3D.setSectionPaint(7, java.awt.Color.black);
    //piePlot3D.setSectionPaint(8, java.awt.Color.lightGray);
    //piePlot3D.setSectionPaint(9, java.awt.Color.red);
    //piePlot3D.setOutlinePaint(java.awt.Color.white);
    if (pieDataset.getItemCount() == 1 && pieDataset.getIndex("无投诉") >= 0) {
      piePlot3D.setSectionPaint(0, java.awt.Color.red);
    }

    piePlot3D.setStartAngle(60D);
    piePlot3D.setDirection(Rotation.CLOCKWISE);
    piePlot3D.setForegroundAlpha(0.8F);
    piePlot3D.setNoDataMessage("No data to display");
    piePlot3D.setLabelGenerator(new CustomLabelGenerator());
    piePlot3D.setBackgroundAlpha(0f);//设置背景透明
    piePlot3D.setOutlinePaint(java.awt.Color.white);//设置边框为白色
    JFreeChart freeChart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, piePlot3D, true);

    freeChart.setBackgroundPaint(java.awt.Color.white);
    freeChart.setBorderVisible(false);//是否显示边框

    CustomLegend legend = new CustomLegend();
    legend.setAnchor(Legend.EAST);
    legend.setOutlinePaint(java.awt.Color.white);//设置边框为白色
    freeChart.setLegend(legend);
    //Legend legend = freeChart.getLegend();
    //StandardLegend legend = (StandardLegend) freeChart.getLegend();
    //legend.setAnchor(Legend.EAST);
    //legend.setOutlinePaint(java.awt.Color.white);

    return freeChart;
  }

  public static void main(String[] args) {
    String str = "#E6315C";
    String s = str.substring(1);
    System.out.println(s);
    int color = Integer.parseInt(s, 16);
    System.out.println(color);
    PieChartTest pieChartTest = new PieChartTest("PieChartTest");
    pieChartTest.pack();
    RefineryUtilities.centerFrameOnScreen(pieChartTest);
    pieChartTest.setVisible(true);
  }

  static class CustomLabelGenerator implements PieSectionLabelGenerator {

    public String generateSectionLabel(PieDataset piedataset, Comparable comparable) {
      return null;
    }

    CustomLabelGenerator() {
    }
  }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Java报表之JFreeChart-第二讲

1.   CategoryDataset分类数据引入 第一步:导入jfreeChart的jar包 第二步:在web.xml配置jfreechart JFreeChartDem...

Java 学习笔记之jfreechart 生成折线图,饼图, ...

package com.yyh.jfreechart; import java.awt.Color; import java.awt.Font; import java.io.File; impor...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

JFreeChart基于Java Web的报表组件的使用以及解决乱码

JFreeChart的简介在此就不赘述,主要讲解如何使用JFreeChart创建各种图表,这些图表包括:饼图、柱状图 ( 普通柱状图以及堆栈柱状图 )、线图、区域图、分布图、混合图、甘特图以及一些仪表...

(附代码)JAVA用POI从Excel读取数据进行相关统计,JFreeChart绘制图表

代码大概三百行吧,不多。本来连接数据库做是个不错的选择,但是我刚刷了系统木有了又懒得装,从txt输入又感觉太low,最后就作死选择了以前从未尝试过的从Excel输入,并碰到了各种问题_(:зゝ∠)_比...

Java报表之JFreeChart-第一讲

1. jfreechar简介 JFreeChart是JAVA平台上的一个开放的图表绘制类库。它完全使用JAVA语言编写,是为applications, applets, servlets 以及JSP等...

Java学习笔记 制作图表过程(Eclipse+JFreeChart)

JFreeChart是开放源代码站点SourceForge.net上的一个JAVA项目,它主要用来生成各种各样的图表,这些图表包括:饼图、柱状图(普 通柱状图以及堆栈柱状图)、线图、区域图、分布图、混...

Java语言用jfreechart绘制柱状图、饼状图和时序图

1.柱状图: public void test1() {   try   {    //设置字体    StandardChartTheme sct = new StandardChartTheme(...

Java学习笔记之JFreeChart详解

JFreeChart是sourceforge 一个Java开源项目,是一个优秀的Java图表生成插件,它提供了在Java应用程序, Servlet和Jsp下生成各种图片格式的图表,包括柱形图,饼...

《Java报表之JFreeChart》第四讲

1.TimeSeries,TimeSeriesCollection 引入 package com.xp.chart.line; import java.awt.Font; import jav...

JFreeChart java 图形绘制

一、JFreeChart获取。         JFreeChart是JFreeChart公司在开源网站SourceForge.NET上的一个项目,该公司的主要产品有如下:     ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)