2013-06-27 70 views
0

我有一个数据源,其中有三个部门,每个部门的员工数均等于8. 我想使用jFreeChart制作饼图,以便首先将饼分区为3对于每个部门120个部门的相同部分。然后在这些分区中,我想显示每个员工的销售情况。我怎么能在jFreeChart中做到这一点。将饼图分成相等部分jfreechart

回答

2
public class PieChart extends JFrame { 

    private PieDataset createDataset() { 
      DefaultPieDataset result = new DefaultPieDataset(); 
      result.setValue("department1", 33.33); 
      result.setValue("department2", 33.33); 
      result.setValue("department3", 33.33); 
      return result; 

     } 

    private JFreeChart createChart(PieDataset dataset, String title) { 

      JFreeChart chart = ChartFactory.createPieChart3D(title,   // chart title 
       dataset,    // data 
       true,     // include legend 
       true, 
       false); 

      PiePlot3D plot = (PiePlot3D) chart.getPlot(); 
      plot.setStartAngle(290); 
      plot.setDirection(Rotation.CLOCKWISE); 
      plot.setForegroundAlpha(0.5f); 
      return chart; 

     } 

} 

public static void main(String[] args) { 
      PieChart demo = new PieChart("Comparison", "Which operating system are you using?"); 
      demo.pack(); 
      demo.setVisible(true); 
     } 
+0

它很容易创建分区,但如何进一步创建分区?谢谢。 – wali

+0

相应地表示使用饼图来分区,所以当你分配任何学生时,那么你的100%将是33.33,按照33.33的分区分配值,如果你想分配每个8学生相等,那么33.33/8 –

2

PieChartDemo1是一个很好的起点;重点关注createDataset();发行版中包含完整的source

附录:如何进一步创建分区?

啊,你想细分每个120°分区。 DefaultPieDataset不直接支持分层结构,但可以使用PiePlot中的颜色突出显示分组。使用Color.getHSBColor()创建相关颜色,如here所示,并使用setSectionPaint()来相应地应用颜色。

+0

它很容易创建分区,但如何进一步创建分区?谢谢。 – wali

+0

我上面提出了一种方法。 – trashgod

+0

非常感谢您的回复。我很感激。 – wali