2014-06-06 2 views
0

사용자 지정 차트 레이블이있는 JFreeChart multiplePieChart에서 만들어야합니다. 차트의 문서 예제 제목은 자동으로 작성됩니다. 문서 예 : MultiplePieChart의 사용자 지정 제목

package demo; 

import java.awt.Dimension; 
import java.awt.Font; 
import javax.swing.JPanel; 
import org.jfree.chart.*; 
import org.jfree.chart.labels.StandardPieSectionLabelGenerator; 
import org.jfree.chart.plot.MultiplePiePlot; 
import org.jfree.chart.plot.PiePlot; 
import org.jfree.data.category.CategoryDataset; 
import org.jfree.data.general.DatasetUtilities; 
import org.jfree.ui.ApplicationFrame; 
import org.jfree.ui.RefineryUtilities; 
import org.jfree.util.TableOrder; 

public class MultiplePieChartDemo1 extends ApplicationFrame 
{ 

    public MultiplePieChartDemo1(String s) 
    { 
     super(s); 
     JPanel jpanel = createDemoPanel(); 
     jpanel.setPreferredSize(new Dimension(600, 380)); 
     setContentPane(jpanel); 
    } 

    private static CategoryDataset createDataset() 
    { 
     double ad[][] = { 
      { 
       3D, 4D, 3D, 5D 
      }, { 
       5D, 7D, 6D, 8D 
      }, { 
       5D, 7D, (0.0D/0.0D), 3D 
      }, { 
       1.0D, 2D, 3D, 4D 
      }, { 
       2D, 3D, 2D, 3D 
      } 
     }; 
     CategoryDataset categorydataset = DatasetUtilities.createCategoryDataset("Region ", "Sales/Q", ad); 
     return categorydataset; 
    } 

    private static JFreeChart createChart(CategoryDataset categorydataset) 
    { 
     JFreeChart jfreechart = ChartFactory.createMultiplePieChart("Multiple Pie Chart", categorydataset, TableOrder.BY_ROW, true, true, false); 
     MultiplePiePlot multiplepieplot = (MultiplePiePlot)jfreechart.getPlot(); 
     JFreeChart jfreechart1 = multiplepieplot.getPieChart(); 
     PiePlot pieplot = (PiePlot)jfreechart1.getPlot(); 
     pieplot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}")); 
     pieplot.setLabelFont(new Font("SansSerif", 0, 8)); 
     return jfreechart; 
    } 

    public static JPanel createDemoPanel() 
    { 
     JFreeChart jfreechart = createChart(createDataset()); 
     return new ChartPanel(jfreechart); 
    } 

    public static void main(String args[]) 
    { 
     MultiplePieChartDemo1 multiplepiechartdemo1 = new MultiplePieChartDemo1("JFreeChart: MultiplePieChartDemo1.java"); 
     multiplepiechartdemo1.pack(); 
     RefineryUtilities.centerFrameOnScreen(multiplepiechartdemo1); 
     multiplepiechartdemo1.setVisible(true); 
    } 
} 

하지만 난 이름 (예 : "슈퍼", "학생", "VIP")와 관세에 의한 인터넷 트래픽의 할당이 내 경우에는

. JFreeChart가 "tariff 1", "tariff 2"를 생성 할 때 나에게 좋지 않습니다 .... 원형 차트 용 맞춤 라벨을 만드는 방법은 무엇입니까?

+0

교차 게시 된 [여기] (http://www.jfree.org/forum/viewtopic.php?f=3&t=116931). – trashgod

답변

1

DatasetUtilities#createCategoryDataset은 프로덕션 코드가 아닌 데모 용으로 설계된 것 같습니다. 이것을 시도하십시오 :

private static CategoryDataset createDataset() 
{ 

    DefaultCategoryDataset categorydataset = new DefaultCategoryDataset(); 

    categorydataset.addValue(3D, "Super", "Sales/Q1"); 
    categorydataset.addValue(4D, "Super", "Sales/Q2"); 
    categorydataset.addValue(3D, "Super", "Sales/Q3"); 
    categorydataset.addValue(5D, "Super", "Sales/Q4"); 

    categorydataset.addValue(5D, "Student", "Sales/Q1"); 
    categorydataset.addValue(7D, "Student", "Sales/Q2"); 
    categorydataset.addValue(6D, "Student", "Sales/Q3"); 
    categorydataset.addValue(8D, "Student", "Sales/Q4"); 

    categorydataset.addValue(5D, "VIP", "Sales/Q1"); 
    categorydataset.addValue(7D, "VIP", "Sales/Q2"); 
    categorydataset.addValue(0D, "VIP", "Sales/Q3"); 
    categorydataset.addValue(3D, "VIP", "Sales/Q4"); 

    return categorydataset; 
} 
+0

! 그것은 내가 필요한 것입니다. – disable1992

관련 문제