2012-04-11 165 views
2

我正在写一个函数来绘制直方图,但我遇到了一个问题。 这是代码绘制直方图

void plotHist(int num, regression *r, histData *h) 
{ 
    int i, j; 
    for (i = 0; i< h->numHist; i++) 
    { 
     printf("%2f\t|", h->hist[i].xValue) ; 
      for (j = 0 ; j < h->hist[i].yFrequency/5; j ++) 
      { 
       printf("*"); 

      } 


     printf("\n"); 
    } 

} 

结果我在屏幕上得到的是:

   -199.422 | 
       -142.232 |**** 
       -98.232 |****** 
       -21.32 |*********** 
       43.424 |**************** 
       58.234 |*************** 
       92.123 |********* 
       189.5 |**** 

的问题是,我有“O”字母,我不另一个阵列添加到该柱状图知道该怎么做。 结果应该是这样的:

 -199.422 | o 
     -142.232 |****o 
     -98.232 |******o 
     -21.32 |********o** 
     43.424 |**********o***** 
     58.234 |********o****** 
     92.123 |******o** 
     189.5 |****o 
+0

“o”对应什么值? – DhruvPathak 2012-04-11 08:35:47

+0

“o”对应于另一个数组名称的值gaussY [] – 2012-04-11 08:39:29

回答

2

不要立即用printf打印直方图。相反,在您进行打印之前找出所有数据点的位置。这样,您不必检查每次打印字符的数据时间,第二个数组也不必位于直方图的绘制区域内。