计算beta分布并画图(2)

import java.awt.Font;
import java.awt.GridLayout;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFrame;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.NumberAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import zxy.nlp.lda.conf.PathConfig;


public class plotbetadis {
    ChartPanel frame1;    
    public  plotbetadis() throws IOException{  
            DefaultCategoryDataset dataset = (DefaultCategoryDataset) createDataset();  
            JFreeChart chart = ChartFactory.createLineChart("","date", "topic intensity/%",dataset,PlotOrientation.VERTICAL, true, true, true);  
          
            CategoryPlot plot=chart.getCategoryPlot();
            NumberAxis numberaxis = (NumberAxis)plot.getRangeAxis();
            numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());           
            numberaxis.setLabelFont(new Font("黑体",Font.BOLD,14));         //水平底部标题  
            numberaxis.setTickLabelFont(new Font("宋体",Font.BOLD,12));  //垂直标题                     
            frame1=new ChartPanel(chart,true);
            chart.getLegend().setItemFont(new Font("黑体", Font.BOLD, 15));  
            chart.getTitle().setFont(new Font("宋体",Font.BOLD,20));//设置标题字体  
      
        }  
               
        
         private static CategoryDataset createDataset() throws IOException { 
             
             DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();             
             
             int lnum=2;
             String resPath = PathConfig.LdaResultsPath;
             String modelName = "ldatimes";
             FileReader fr=new FileReader(filename);
                                  
             double[][] nodes = new double[lnum][];
             String[] lines;
                
             //System.out.println("以行为单位读取文件内容,一次读一整行:");
             BufferedReader br=new BufferedReader(fr);
             String line = null;
             int x=0;

            // 一次读入一行,直到读入null为文件结束
             while ((line = br.readLine()) != null && x<lnum) {
                
                    // 显示行号
                    //System.out.println("line " + lnum + ": " + line);
                    lines = line.split("	");
//                                for (int i = 0; i < lines.length; i++) {
//                                    System.out.println("一维 :" + lines[i] + "   ");
//                                }
                    nodes[x] = new double[lines.length];
                    for (int y = 0; y < lines.length; y++) {
                        
                        nodes[x][y] = Double.parseDouble(lines[y]);  
                        String s = String.valueOf((y+4)/4);
                        String t = String.valueOf(x);
                        defaultcategorydataset.addValue(nodes[x][y], "top"+t, s);
                    }
                    x++;
                    //lines = null;
                
             }
             br.close();
                     
             return defaultcategorydataset;  
            }  
         public ChartPanel getChartPanel(){  
                return frame1; 
         }         
            
         public static void main(String args[]) throws IOException{
              JFrame frame=new JFrame("数据统计图");  
              frame.setLayout(new GridLayout(2,2,5,5)); 
              frame.add(new plotbetadis().getChartPanel());    //添加折线图  
              frame.setBounds(50, 50, 600, 600);  
              frame.setVisible(true);  
          }
    
}

原文地址:https://www.cnblogs.com/52circle/p/8553625.html