|
日時: 2009/02/22 20:17
名前: lightbox
|
http://pchart.sourceforge.net/
発表されたのが 2008 年みたいなので、まだ歴史は浅いようですが、
逆に言うと、バグはある上に使いづらいし重い Pear のライブラリや
有償であまり美しく無い jpgraph を使うよりずっと簡単に感じました
まずはダウンロードで、pChart.1.27d.rar をダウンロードします。
DF でソースレベルで比較しましたが、これが最新で間違いありません
解凍して、そのディレクトリの内容にブラウザからアクセスできるようにして、
まず、アクセスする前に Example1.php をエディタで開いて、以下の部分
を変更します。
変更前
変更後
$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();
?>
|