ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
pChart ( a PHP Charting library )
日時: 2009/02/22 20:17
名前: lightbox



http://pchart.sourceforge.net/

発表されたのが 2008 年みたいなので、まだ歴史は浅いようですが、
逆に言うと、バグはある上に使いづらいし重い Pear のライブラリや
有償であまり美しく無い jpgraph を使うよりずっと簡単に感じました


まずはダウンロードで、pChart.1.27d.rar をダウンロードします。
DF でソースレベルで比較しましたが、これが最新で間違いありません

解凍して、そのディレクトリの内容にブラウザからアクセスできるようにして、
まず、アクセスする前に Example1.php をエディタで開いて、以下の部分
を変更します。

変更前
拡張子:
 $Test->Render("example1.png");
変更後
拡張子:
 $Test->Stroke();
$Test->Render(NULL); と同じ結果になりますが、ブラウザに直接出力します。 変更後ブラウザで表示すると以下のようになると思います。 ↓実際の実行 URL http://winofsql.jp/php/pchart/Example1.php 次に、最初に必要になるのは、フォントの指定です。 この pChart では、表示する部位単位にフォント指定するように なっているので注意して下さい。 ※ 日本語は、UTF-8 で指定します。これは GD の仕様で、サーバの設定によっては、 ※ 他のキャラクタセットでも可能な場合もあります ↓実際の実行 URL http://winofsql.jp/php/pchart/Example1b.php
拡張子:
<?php
 /*
  Example1 : A simple line chart
 */

 // Standard inclusions
 include("pChart/pData.class");
 include("pChart/pChart.class");
  
 // Dataset definition 
 $DataSet = new pData;
 $DataSet->ImportFromCSV("Sample/bulkdata.csv",",",array(1,2,3),FALSE,0);
 $DataSet->AddAllSeries();
 $DataSet->SetAbsciseLabelSerie();
 $DataSet->SetSerieName("睦月","Serie1");
 $DataSet->SetSerieName("如月","Serie2");
 $DataSet->SetSerieName("弥生","Serie3");
 $DataSet->SetYAxisName("y軸説明");
 $DataSet->SetYAxisUnit("単位");
  
 // Initialise the graph
 $Test = new pChart(700,230);
 $Test->setFontProperties("../../../php/elenat.ttf",8);
 $Test->setGraphArea(70,30,680,200);
 $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
 $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
 $Test->drawGraphArea(255,255,255,TRUE);
 $Test->drawScale(
   $DataSet->GetData(),
   $DataSet->GetDataDescription(),
   SCALE_NORMAL,150,150,150,TRUE,0,2
 );
 $Test->drawGrid(4,TRUE,230,230,230,50);
  
 // Draw the 0 line
 $Test->setFontProperties("Fonts/tahoma.ttf",6);
 $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
  
 // Draw the line graph
 $Test->drawLineGraph(
   $DataSet->GetData(),
   $DataSet->GetDataDescription()
 );
 $Test->drawPlotGraph(
   $DataSet->GetData(),
   $DataSet->GetDataDescription(),
   3,2,255,255,255
 );
  
 // Finish the graph
 $Test->setFontProperties("../../../php/elenat.ttf",8);
 $Test->drawLegend(75,35,$DataSet->GetDataDescription(),255,255,255);
 $Test->setFontProperties("../../../php/elenat.ttf",10);
 $Test->drawTitle(60,22,"サンプル1",50,50,50,585);
 $Test->Stroke();
?>
以下ではさらに、どこを変えるとどこの色が変わるかを 解りやすくしたものです。 ↓実際の実行 URL http://winofsql.jp/php/pchart/Example1c.php
拡張子:
<?php
 /*
  Example1 : A simple line chart
 */

 // Standard inclusions
 include("pChart/pData.class");
 include("pChart/pChart.class");
  
 // Dataset definition 
 $DataSet = new pData;
 $DataSet->ImportFromCSV("Sample/bulkdata.csv",",",array(1,2,3),FALSE,0);
 $DataSet->AddAllSeries();
 $DataSet->SetAbsciseLabelSerie();
 $DataSet->SetSerieName("睦月","Serie1");
 $DataSet->SetSerieName("如月","Serie2");
 $DataSet->SetSerieName("弥生","Serie3");
 $DataSet->SetYAxisName("y軸説明");
 $DataSet->SetYAxisUnit("単位");
  
 // Initialise the graph
 $Test = new pChart(700,230);
 $Test->setFontProperties("../../../php/elenat.ttf",8);
 $Test->setGraphArea(70,30,680,200);
 $Test->drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
 $Test->drawRoundedRectangle(5,5,695,225,5,230,230,230);
 $Test->drawGraphArea(255,255,255,TRUE);

// ***********************************************
// スケールの色の変更 ( 赤 : 255,0,0 )
// ***********************************************
 $Test->drawScale(
   $DataSet->GetData(),
   $DataSet->GetDataDescription(),
   SCALE_NORMAL,255,0,0,TRUE,0,2
 );

 $Test->drawGrid(4,TRUE,230,230,230,50);
  
 // Draw the 0 line
 $Test->setFontProperties("Fonts/tahoma.ttf",6);
 $Test->drawTreshold(0,143,55,72,TRUE,TRUE);
  
 // Draw the line graph
 $Test->drawLineGraph(
   $DataSet->GetData(),
   $DataSet->GetDataDescription()
 );
 $Test->drawPlotGraph(
   $DataSet->GetData(),
   $DataSet->GetDataDescription(),
   3,2,255,255,255
 );
  
 // Finish the graph
 $Test->setFontProperties("../../../php/elenat.ttf",8);

// ***********************************************
// 凡例色の変更 ( 濃い緑 )
// ***********************************************
 $Test->drawLegend(
   75,
   35,
   $DataSet->GetDataDescription(),
   0xE8,0xD5,0xE5,	// 背景色
   0x60,0x60,0x60,	// 影の色
   0x22,0x80,0x12	// 濃い緑
 );

 $Test->setFontProperties("../../../php/elenat.ttf",10);
// ***********************************************
// タイトル色の変更 ( 青 : 0,0,255 )
// ***********************************************
 $Test->drawTitle(60,22,"サンプル1",0,0,255,585);

 $Test->Stroke();
?>
メンテナンス


日時: 2009/02/22 20:17
名前: lightbox