美文网首页
Data_analysis

Data_analysis

作者: 轻荷 | 来源:发表于2015-11-14 12:24 被阅读35次
    Data_analysis
    String [] allwords;
    String delimiters=" ,.?!;:[]";
    IntDict concordance;
    PFont f;
    int n=0;
    
    void setup() {
      size(600, 400);
      pixelDensity(2);
      //load font
      f=createFont("arial", 12, true);
    
      //load the tale into rawtext array
      String url = "data.txt";
      String [] rawtext=loadStrings(url);
    
      //join the big array together as one long string
      String everything = join(rawtext, " ");
      allwords=splitTokens(everything, delimiters);
    
      //make a new empty dictionary
      concordance=new IntDict();
    }
    
    void draw() {
      background(255);
    
      //sort by values for largest to smallest
      concordance.sortValuesReverse();
    
      //cllect statistics one word a circle
      String s=allwords[n].toLowerCase();
      concordance.increment(s);
      
      //Create a array of keywords
      String [] keys=concordance.keyArray();
      //Create variables stand for total length and the row
      float tl, row;
      //Create vars' x,y coordination of text and the text heigth
      float xpos, ypos, fh;
      
      //Initialize those varibales every draw
      tl=0.0;
      row=0;
      fh=0.0;
      xpos=0;
      ypos=concordance.get(keys[0])*2+5;
      
      int findex=0;
      for (int i=0; i<keys.length; i++) {
        //Get the key name and its count
        String word=keys[i];
        float count=concordance.get(word);
    
        fill(0, i%2*100+155);
        textFont(f, count*2+5);
    
        row=int(tl/width);
        
        println(ypos);
        text(word, xpos, ypos);
        
        //Increase the values of x coordinate
        tl+=textWidth(word);
        xpos+=textWidth(word);
        
        //If the text near the right side, then come to next line
        if (int(tl/width)>row) {
          findex=i;
          fh=concordance.get(keys[findex])+5;
          ypos+=fh*1.2*2;
          xpos=0;
        }
        
      }
      //Stop the draw when finish cllect the statistics
      n++;
      if (n>=allwords.length) {
        noLoop();
      }
      
      saveFrame("frames/VisualizeConcordance####.jpg");
    }
    

    相关文章

      网友评论

          本文标题:Data_analysis

          本文链接:https://www.haomeiwen.com/subject/ykkkhttx.html