ホームページ >バックエンド開発 >PHPチュートリアル >PHP 統計グラフィックス LIbchart クラスの使用例_PHP チュートリアル

PHP 統計グラフィックス LIbchart クラスの使用例_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:47:13843ブラウズ

統計グラフィックスはよく見るデータグラフィックスです。3つの配列をグラフィックスで表示したり、不動産をグラフィックスで表示したりする場合に、必要なときに非常に便利なphp LIbchartグラフィック生成クラスを紹介します。それに。

単純な整数または英語の場合は、次のクラスを直接使用できます (Baidu から libchart クラスをダウンロードできます)

代码如下 复制幣

/*
  レオによる更新
  シートの絵を描くと、その絵にあるすべての数値がかかります。
 */
 "./libchart/classes/libchart.php" が必要です;
 クラスdrawPic{
  var $chart;
  var $style;
  functiondrawPic($style="1",$width="500",$height="250"){
   $this->style=$style;
   if($style==1){
    //シリンダー
    $this->chart = newverticalbarchart($width,$height);
   }else if($style==2){
    //ライン
    $this->chart = new LineChart($width,$height);
   }else if($style==3){
    //しこり
    $this->chart = 新しい PieChart($width,$height);
   }その他{
    //クロス
    $this->chart=new horizo​​ntalbarchart($width,$height);
   }
  }
 
  関数描画($obj){
  
   if($this->style==1||$this->style=="1"){
    //シリンダー
    $dataSet = 新しい XYDataSet() ;
    $this->chart->setTitle($obj->title);//title
    $arr=array();
    $arr=$obj->データ配列;
    foreach($arr as $key => $val){
     $dataSet->addPoint ( new Point($key,$val)) ;
    }
    $this->chart->setDataSet ( $dataSet ) ;
    $this->chart->render();
   }else if($this->style==2||$this->style=="2"){
    //ライン
    $this->chart->setTitle($obj->title);//title
    $arr=array();
    $arr=$obj->データ配列;
    $i=0;
    $dataSet = 新しい XYSeriesDataSet();
    foreach($arr as $key => $val){
     $serie{$i}= 新しい XYDataSet();
     foreach($val as $k => $v){
      $serie{$i}->addPoint(new Point($k,$v));
     }
     $dataSet->addSerie($key,$serie{$i});
     $i=$i+1;
    }
    $this->chart->setDataSet($dataSet);
    $this->chart->render();
   }else if($style==3){
    //しこり
    $dataSet = 新しい XYDataSet() ;
    $this->chart->setTitle($obj->title);//title
    $arr=array();
    $arr=$obj->データ配列;
    foreach($arr as $key => $val){
     $dataSet->addPoint ( new Point($key."($val)",$val)) ;
    }
    $this->chart->setDataSet ( $dataSet ) ;
    $this->chart->render();
   }その他{
    //クロス
    $dataSet = 新しい XYDataSet();
    $this->chart->setTitle($obj->title);//title
    $arr=array();
    $arr=$obj->データ配列;
    foreach($arr as $key => $val){
     $dataSet->addPoint ( new Point($key,$val)) ;
    }
    $this->chart->setDataSet($dataSet);
    $this->chart->render();
   }
  }
 
 }
 クラス kkk{};
 $n=newdrawPic("4");//1 または 2 または 3 または 4 を設定します
 $k=新しいkkk();
$k->dataArray=array("2000"=>"30","2001"=>"40","2002"=>"50","2003"=>"60"," 2004"=>"70","2005"=>"80","20020"=>"90");//style==1 または style=2 または style=4
//$k->dataArray=array("2000"=>"30","2001"=>"40","2002"=>"50","2003"=>"60" ,"2004"=>"70","2005"=>"80","20020"=>"90");//style==3
//$k->dataArray=array("yi"=>array("2000"=>"30","2001"=>"40","2002"=>"50"," 2004"=>"60"),"er"=>array("2003"=>"60","2004"=>"70","2005"=>"80","20020 "=>"90"),"san"=>array("33"=>"12","45"=>"56","89"=>"45","86" =>"49"));//style==2 とブロックする最初の配列が表示されます (2000 2001 2002 2004 と表示されます)
$k->title="シートのタイトル";
$n->draw($k);

?>

赤い文字は通話です。メソッド 1、2、および 4 は同じ配列です。図 3 は線グラフです。比較のために 2 つの線または複数の線が存在する場合があります (単一の線の場合もあります)。

中国語を使用したい場合は、libchart の中国語文字が文字化けすることがあります。解決策は次のとおりです。

私たちのアプリケーションのメインソースコードは次のとおりです:

コードは次のとおりですコードをコピー

ヘッダー("コンテンツタイプ:画像/png");

require_once('libchart/classes/libchart.php');

$chart = newverticalbarchart(500, 250); //パラメータは作成される画像の幅と高さを表します


$dataSet = new XYDataSet() // XY 軸データ オブジェクトをインスタンス化します

// 4 つのデータ セットをこのオブジェクトに追加します。Point オブジェクトの最初のパラメーターは X 軸座標

を表します。 // 2 番目は Y 軸座標を表します


$str = '2 月';

$str = mb_convert_encoding($str, "html-entities","utf-8" );



$dataSet -> addPoint ( new Point( "2005 年 1 月" , 273 )) ;

$dataSet -> addPoint ( new Point( "$str" , 120 )) ;
$dataSet -> addPoint ( new Point( "2005 年 3 月" , 442 )) ;

$dataSet -> addPoint ( new Point( "2005 年 4 月" , 600 )) ;

// このデータコレクションをグラフィックスオブジェクトに渡します

$chart -> setDataSet ( $dataSet ) ;

//グラフィックのタイトルを設定し、png ファイルとしてレンダリングします

$chart -> setTitle ("統計グラフ");

//$chart -> レンダリング ( "demo/generated/demo1.png" ) ; // ここにはパスとファイル名が必要です

//とても簡単で下の写真のような綺麗なヒストグラムが出てきます

$chart ->
?>

赤字の箇所は中国語の文字化け問題を解決する箇所です。

2. 文字化けしたタイトル:

中国語の文字のデフォルト表示は文字化けします。これは、次の変更を加えてください。 まず、libchar/libchart/classes/view/chart/Chart.php を変更し、次の内容を見つけます:

コードは次のとおりですコードをコピーパブリック関数 setTitle($title) {
$this->plot->setTitle($title);
}

次のように変更されました:

コードは次のとおりですコードをコピー
パブリック関数 setTitle($title) {

$title = mb_convert_encoding($title, "html-entities","utf-8" );

$this->plot->setTitle($title);

}

ステップ 3: 上記のブログで述べた内容です:

1. チャートを生成するためにLibchartライブラリを使用して作成したphpファイルはutf-8エンコードで保存されます

2. 中国語の Xingkai、Songti などのいくつかの中国語フォント ライブラリを見つけて、libchart フォント ディレクトリにコピーします
3. libchart クラスディレクトリの text.php ファイルを変更します
47行目と48行目

コードは次のとおりですコードをコピー 私が変更したもの:
$this->fontCondensed = dirname(__FILE__) . "/../fonts/DejaVuSansCondensed.ttf"; $this->fontCondensedBold = dirname(__FILE__) . "/../fonts/DejaVuSansCondensed-Bold.ttf";


に変更されました

$this->fontCondensed = dirname(__FILE__) . "/../fonts/見つけた中国語フォント"; $this->fontCondensedBold = dirname(__FILE__) . "/../fonts/見つけた中国語フォント";




コードは次のとおりですコードをコピーパブリック関数 Text() { $baseDir = dirname(__FILE__) . "/../../../";FANGZHENGFANGSONG.ttf このファイルは私が見つけた方正模倣宋簡体字フォントに中国語名を変更したものですが、変更しなくても大丈夫です。

// Bitstream Vera に基づく無料の低解像度フォント
$this->fontCondensed = $baseDir . "fonts/FANGZHENGFANGSONG.ttf";
$this->fontCondensedBold = $baseDir . "fonts/FANGZHENGFANGSONG.ttf";
}


主に基本的な操作について説明します。質問がある場合は、上記の手順に従ってください。これらの方法を提供してくれた熱心なネチズンに改めて感謝します。ぜひ共有してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632896.html技術記事統計グラフィックスはよく見るデータグラフィックスで、3つの配列をグラフィック表示したり、不動産をグラフィック表示したりする場合に、グラフィックスを使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。