/**
* ecshop jpgraph チャート ライブラリ
* ================================================ =============
* オープンソースのjpgraphライブラリを使用して、さまざまな種類のデータをチャートやトレンドチャートの形式で表示します。
* ================================================ =============
**/クラスcls_jpgraph
{
var $db = null;
var $ydata = array();
var $width = 350;
var $height = 250;var $graph = '' //グラフィックオブジェクト
;
; var $piegraph = '' //円グラフvar $lineplot = '' //線形オブジェクト
;
; var $barpot = '' //バーオブジェクト
; var $gbplat = '' //列グループオブジェクト
; var $txt = '' //テキストオブジェクト
; var $p1 = '' //プログラムオブジェクトvar $scale = '' //グラフの種類 (textlin、textlog、intlin)
;
; var $yscale = '' // (ログ,)
; var $xgrid = false //x 軸のグリッド表示
; var $ygrid = false //Y軸グリッド表示
; var $title = '' //タイトル
; var $subtitle = '' // サブタイトル (通常は日付)
; var $xaxis = '' //x 軸の名前
; var $yaxis = '' //y 軸の名前/*マージン位置*/
var $left = 0;
var $right = 0;
var $top = 0;
var $bottom = 0;/**
*コンストラクター
*/
function cls_jpgraph($width=350,$height=250)
{
$this->width = $width;
$this->height = $height;$this->graph = 新しいグラフ($this->幅,$this->高さ);
}
/**
*チャートクラスライブラリのコンストラクター
*
*/
/*
関数 __construct($parms,$width,$height)
{
cls_jpgraph($parms,$width,$height);
}
*//*基本的な画像情報の設定*/
function set_jpgraph($scale='intlin',$title='',$subtitle='',$bgcolor='',$xaxis='',
$yaxis='',$xgrid=false,$ygrid=false,$margin='') {$this->scale = $scale;
$this->title = $title;
$this->subtitle = $subtitle;
$this->xaxis = $xaxis;
$this->yaxis = $yaxis;
$this->xgrid = $xgrid;
$this->ygrid = $ygrid;if(!empty($scale)) {
$this->graph->setscale($this->scale);
}
他に{
$this->graph->setscale('intlin');
}
$this->graph->xgrid->show($this->xgrid,$this->xgrid);
$this->graph->ygrid->show($this->ygrid,$this->ygrid);if(!empty($bgcolor)) {
$this->graph->setmargincolor($bgcolor);
}/*画像の位置を手動で設定した場合*/
if(is_array($margin)) {
while(list($key,$val) = each($margin)) {
$this->$key = $val;
}
$this->graph->setmargin($this->left,$this->right,$this->top,$this->bottom);
}if(!empty($this->title)) {
$this->graph->title->set($this->title);
}
if(!empty($this->字幕)) {
$this->graph->subtitle->set($this->subtitle);
}
他に{
$this->graph->subtitle->set('('.date('y-m-d').')') //デフォルトのサブタイトルは現在の日付に設定されます
}
if(!empty($this->xaxis)) {
$this->graph->xaxis->title->set($this->xaxis);
}
if(!empty($this->yaxis)) {
$this->graph->yaxis->title->set($this->yaxis);
}}
/*線形プロットを作成*/
function create_lineplot($parms,$color='black',$weight=1)
{
$this->ydata = $parms;
$this->lineplot = 新しい lineplot($this->ydata);
$this->lineplot->setcolor($color);
$this->lineplot->setweight($weight);$this->lineplot;を返す
}/*棒グラフ (バーポット) を作成します*/
function create_barpot($parms,$color='black',$width='0')
{
$this->ydata = $parms;
$this->barpot = 新しい barplot($this->ydata);
$this->barpot->setfillcolor($color);
if(!empty($width)) {
$this->barpot->setwidth($width);
}$this->barpot; を返す
}/*データ縦棒グラフ グループを作成*/
function create_bargroup($plotarr,$width='0.8')
{
$this->gbplot = 新しいグループバープロット($plotarr);
$this->gbplot->setwidth($width);$this->gbplot;を返す
}/*テキストコンテンツを作成*/
function create_text($str,$postion='',$color='black')
{
$this->txt = 新しいテキスト($str);if(is_array($postion)) {
while(list($key,$val) = each($postion)) {
$this->$key = $val;
}
$this->txt->setpos($this->left,$this->top);
}
他に{
$this->txt->setpos(10,20);
}
$this->txt->setcolor($color);$this->graph->add($this->txt);
}/*C 型チャートを作成*/
function create_pie($parms,$title,$type='3d',$size='0.5',$center='0.5',$width='350',$height='250')
{
$this->width = $width;
$this->height = $height;$this->piegraph = 新しい円グラフ(300,200);
$this->piegraph->setshadow();$this->piegraph->title->set($title);
if('3d' != $type) {
$this->p1 = 新しいパイプロット($parms);
$this->piegraph->add($this->p1);
}
他に{
$this->p1 = 新しいパイプロット 3d($parms);
$this->p1->setsize($size);
$this->p1->setcenter($center);
// $this->p1->setlegends($gdatelocale->getshortmonth());
$this->piegraph->add($this->p1);
}
$this->piegraph->ストローク();
}関数get_auth_code($length=4)
{
$spam = 新しいスパム対策();
$chars = $spam->rand($length);if( $spam->ストローク() === false ) {
false を返します;
}$chars を返す;
}/*グラフィックの作成と表示を完了*/
関数表示($obj)
{
$this->graph->add($obj);
$this->graph->ストローク();
}
}?>