C3のマニアックな情報を提供リアル店舗にない楽しい表現でショッピングできます

おっとC3の悪口はそこまでだ

PHPで棒グラフやレーダーチャートなどのグラフを作りたい場合、そしてそれを綺麗に見せたいのであれば を使えば簡単に実装することができます。

(他にも、 を使ったり、 や を使うという選択肢もあります)

pChartはバージョン1系と2系が存在しますが、1系は2008年ごろに開発が停止しているようで、PHP5.3系で動かしたりするとエラー吐いたりもするので、最新の2系を使う方がよいでしょう。

ここでは、CentOS5.7+PHP5.3.8上で2011年9月末時点で最新のpChart2.1.3を使って解説しています。

pChartを使い始める前にGDライブラリ関連を確認する

pChartはGDライブラリを使って描画するため、関連するパッケージやPHPもGDが使えるようにセットアップしておく必要があります。

GDライブラリがPHPから利用可能かは、phpinfo()での出力結果を見てみるのが早いでしょう。


または、pChartのソースをサーバー上で展開してドキュメントルーと以下に配置し、アクセスしてみるのがもっと手っ取り早いかもしれません。

必要な環境がそろっていないと下記のようなエラーメッセージが表示されます。

WarningIt seems that you're not meeting the pChart minimal server requirements: - PHP must be at least 4.x- GD version 2.x

環境がそろっていない場合は、GDライブラリやlibjpegやlibpng、libXpmなどをインストールしておきます。

PHPもパッケージから利用している場合は、php-gdパッケージが必要になります。

# yum search php-gd-snip-php-gd.x86_64 : gd グラフィックライブラリを使用するための PHP アプリケーション用モジュールphp53-gd.x86_64 : gd グラフィックライブラリを使用

PHPをソースからインストールしている場合は、下記のような感じでconfigureします。

./configure --with-apxs2 \--enable-mbstring \--with-openssl \--with-gd \--with-jpeg-dir=/usr \--with-png-dir=/usr \--with-zlib-dir=/usr \--with-xpm-dir=/usr \--with-freetype-dir=/usr \--with-libdir=lib64

※ ハイライトの箇所がGD関連のオプション

pChartで出力するグラフ内に日本語を使いたい場合のフォントの設定方法については後述しています。

pChartで作れるグラフの種類

pChartのソースにはかなり豊富なサンプルが用意されています。

ダウンロードしたソースをドキュメントルート以下に配置してアクセスしてみたら、使えるグラフのサンプルとそれを書くためのソースが表示されます。


サンプルの中のグラフを幾つか紹介。

– 折れ線グラフ

– 棒グラフ

– 円グラフ

– レーダーチャート

– バブルチャート

– 株価チャート


– バーコード(発送ラベル)

 

この他にも散布図や積み上げの棒グラフなど多くの種類のグラフが作成できます。

また、各グラフにはラベルを付けられたり、複数のグラフを合わせて表示するといった画像も作れるようです。

バーコードやそれを加工したラベルのような画像が作れるのはかなりユニークですよね。

ノンプログラミングでのpChartの使い方

これだけ豊富なサンプルが用意されているので、プログラムを書くのもそこまでてこずらずに済みそう、とは思うのですがさらに凄いのは、グラフを作るためのユーザーインターフェースが用意されていること。


先ほどのpChartのトップ画面から「Sandbox」メニューをクリックすると表示されます。

「General settings」メニューで画像サイズや背景色などの一般的な設定を、「Data」メニューでグラフの元になるデータを、「Scale」メニューでグラフの軸やメモリなどの設定を、「Legend, thresholds & Misc」メニューで注釈の表示位置や閾値の設定などができます。

全ての設定が完了したら右上にある「Render picture」でグラフを描画してくれます。

また、そのグラフを作るためのソースコードを「Show code」で表示することが出来ますので、サーバー上に保存すればいつでも呼び出すことが可能です。

ある程度こういうグラフを作りたいって場合も、この機能でソースコードを出力してから改修していけば効率的にプログラミングできるかもしれません。

ただ、デフォルトでは日本語フォントが選択できなかったりするので、使いたい場合はサンドボックスのプログラムに多少手を入れてあげる必要があります。

– サンドボックスで日本語を使う場合

まず最初に、日本語フォントをpChartのfontsディレクトリに格納します。

今回は、CentOS標準で使えるsazanami-gothicフォントを使います。

フォント用のttfファイルをfontsディレクトリにコピーするか下記のようにシンボリックリンクを作成します。

ln -s /usr/share/fonts/japanese/TrueType/sazanami-gothic.ttf sazanami-gothic.ttf

次に、pChartのディレクトリ内にあるexamples/sandbox/index.phpの623行目に定義されているlistfonts関数内に、さざなみフォントを出力するようにoptionタグを追加します。

echo "<option value='advent_light.ttf'>advent_light</option>";echo "<option value='sazanami-gothic.ttf'>Sazanami</option>";echo "<option value='Bedizen.ttf'>Bedizen</option>";

これで、サンドボックスからでも下記のようにキャプションに日本語フォントを使用することができます。


で、実際にサンドボックスから書いてみた棒グラフ。


上記のグラフを書くために自動生成されたPHPのソースコードは下記。

<?phpinclude("class/pData.class.php");include("class/pDraw.class.php");include("class/pImage.class.php");$myData = new pData();$myData->addPoints(array(12,11,32,4,90,48),"Serie1");$myData->setSerieDescription("Serie1","Aさん");$myData->setSerieOnAxis("Serie1",0);$myData->addPoints(array(22,60,3,0,15,22),"Serie2");$myData->setSerieDescription("Serie2","Bさん");$myData->setSerieOnAxis("Serie2",0);$myData->addPoints(array("1月","2月","3月","4月","5月","6月"),"Absissa");$myData->setAbscissa("Absissa");$myData->setAxisPosition(0,AXIS_POSITION_LEFT);$myData->setAxisName(0,"1st axis");$myData->setAxisUnit(0,"");$myPicture = new pImage(500,230,$myDa
ta);$Settings = array("R"=>170, "G"=>183, "B"=>87, "Dash"=>1, "DashR"=>190, "DashG"=>203, "DashB"=>107);$myPicture->drawFilledRectangle(0,0,500,230,$Settings);$Settings = array("StartR"=>219, "StartG"=>231, "StartB"=>139, "EndR"=>1, "EndG"=>138, "EndB"=>68, "Alpha"=>50);$myPicture->drawGradientArea(0,0,500,230,DIRECTION_VERTICAL,$Settings);$myPicture->drawRectangle(0,0,499,229,array("R"=>0,"G"=>0,"B"=>0));$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>50,"G"=>50,"B"=>50,"Alpha"=>20));$myPicture->setFontProperties(array("FontName"=>"fonts/sazanami-gothic.ttf","FontSize"=>14));$TextSettings = array("Align"=>TEXT_ALIGN_MIDDLEMIDDLE, "R"=>255, "G"=>255, "B"=>255);$myPicture->drawText(250,25,"販売実績",$TextSettings);$myPicture->setShadow(FALSE);$myPicture->setGraphArea(50,50,475,190);$myPicture->setFontProperties(array("R"=>0,"G"=>0,"B"=>0,"FontName"=>"fonts/sazanami-gothic.ttf","FontSize"=>8));$Settings = array("Pos"=>SCALE_POS_LEFTRIGHT, "Mode"=>SCALE_MODE_ADDALL_START0, "LabelingMethod"=>LABELING_DIFFERENT, "GridR"=>255, "GridG"=>255, "GridB"=>255, "GridAlpha"=>20, "TickR"=>0, "TickG"=>0, "TickB"=>0, "TickAlpha"=>50, "LabelRotation"=>0, "CycleBackground"=>1, "DrawXLines"=>1, "DrawSubTicks"=>1, "SubTickR"=>255, "SubTickG"=>0, "SubTickB"=>0, "SubTickAlpha"=>50, "DrawYLines"=>ALL);$myPicture->drawScale($Settings);$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>50,"G"=>50,"B"=>50,"Alpha"=>10));$Config = array("DisplayValues"=>1, "Gradient"=>1, "AroundZero"=>1);$myPicture->drawBarChart($Config);$Config = array("FontR"=>0, "FontG"=>0, "FontB"=>0, "FontName"=>"fonts/sazanami-gothic.ttf", "FontSize"=>8, "Margin"=>6, "Alpha"=>30, "BoxSize"=>5, "Style"=>LEGEND_ROUND, "Mode"=>LEGEND_VERTICAL);$myPicture->drawLegend(50,15,$Config);$myPicture->stroke();?>

プログラムが書けなくてもここまでのことができますし、高度な画像編集ソフトを使う必要も無く、おまけにデザインも綺麗に仕立ててくれて、ライセンスはGPL v3となんか嘘みたいなライブラリになっています。

ただし、このUIを使って描画するには投入できるデータの項目数に限りがあったり、出力できるグラフが限定されていたりというような制限があるので、大規模なデータを使って色んなグラフを書きたいという場合は、やはりプログラミングするしかないかと思いますが。


pChartを使ったプログラミング方法の詳細については、「 」を参考にしてみてください。
 

[PR]

[PR]

[PR]

楽天市場C3格安販売

WHAT’S GOOD??

まず先日の秋田ツアー「湯沢ストリート村」。

あいにくの雨天→土砂振り、当日秋田は記録的豪雨に見舞われた中

雨の中がっつり盛り上がってくれた湯沢の皆に心から感謝。

雨の中ライブは初だったけど何か美しくて忘れられない光景だったす。

藤田さんをはじめストリート村主催スタッフの皆々様、

本当にお世話になりました。

街を元気にする思いに少しでも力になれたらと思います。

また来年も必ず湯沢に遊び行きます。

また湯沢の皆も遊んでやー。

そしてUNHOLYツアー「#UNTOUR」は

名古屋から始まり京都、秋田そして

山梨

長野

福岡

福島

仙台

は決まりそうす。

ツアーは12月まで続くので8月〜12月まで

各地でイケてるpartyオーガナイザー様は以下までご連絡ください。

あともう少しで参加海外プロジェクトも発表出来る。

TEAM2MVCHは止まらない。

乞うご期待。

ONE

ISH-ONE NEW EP 

「UNHOLY」デジタル配信開始!!

ダウンロード:

i-tunes,Amazon MP3,Music.jp,レコチョク,spotify,Apple music他、

各社配信サイトにて配信中。

「UNHOLY」の全歌詞公開。

ISH-ONE『Unholy -EP-』

01.Unholy 

02.Fillin’ good

03.All the time 

04.New thing 

05.C&F 

06.I’m in luv

07.Day1 

08.Wolves feat’ Jinmenusagi 

09.Fallin’

10.Go easy

info:

SNOOP DOGGやRED MANとのコラボも記憶に新しい

世界基準で挑戦を続ける男の最新EPが到着!!

“Unholy”(不浄)と題された本作はアート、ソングライティング、トラックメイク、プロデュースを全て担当。とめどない進化を続ける”異端児” ISH-ONEのセクシーかつグロテスクな”今”がここに。

7月5日(水)i-tunes他 各社配信サイトにてリリース。

薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬薬

ISH-ONE/REMIX KILLER vol.1~3 再入荷しました!!!

右差しvol.1-red- 

右差しvol.2-green- 

右差しvol.3-blue- 

完了 th="24">vol.1,2,3 コンプリートSPECIAL SET

DL: 

予約(特典付き):


タイトル:A.M/POWER MUSIC

01.Power music feat’REDMAN,SLASH(GUNS&ROSES)
02.How we livin feat’SNOOP DOGG 
03.48 straight 
04.After party
05.Higher
06.Guns down
07.Hold ya
08.La di da di
09.She right
10.A.M


All SONGS Produced by A.M

Recorded by DEL for DELMONTE STUDIO 
Mix&Mastering by HIROSHI SAEKI for CRYSTAL SOUND 

Profile:


価格:2484円(税込み)
レーベル名:YINGYANG PRODUCTION
品番:yyp19

★HOT NINJA(特典付き)
” 

★WENOD

★DISKUNION

 

ISH-ONE 12ヶ月連続シングルリリース第11弾

「HIT THE CAN」TRILL CLINTON prod. by TEAM2MVCH

ISH-ONE 12ヶ月連続シングルリリース第10弾

「WOO」prod. by TEAM2MVCH

12ヶ月連続シングルリリース 第9弾「POWER MUSIC feat’ REDMAN.SLASH

12ヶ月連続シングルリリース 第8弾「HOW WE LIVIN’ feat’ SNOOP DOGG」

 CRAZY-Y&ISH-ONE / TRILL CLINTON 


12ヶ月連続シングルリリース 第3弾「WAGAMAMA」



12ヶ月連続シングルリリース 第2弾「She is the type」

12ヶ月連続シングルリリース




「PURPLE NINJA」

特典音源付きCDはコチラ


 

NEW MV from “PurpleNinja”

ISH-ONE 1st album『ST-ILL』

ISH-ONE 2nd album『NEXT』

ISH-ONE 3rd album ISH-ONE×YMG『D.R.O.P』


ISH-ONE 4th album『THE LONGEST NIGHT』


ISH-ONE for TEAM2MVCH produce
S7ICKCHICKs「LIPS7ICK」

DL: 

i-tunes:

Amazon MP3:

他レコチョク、MUSIC.JP、SPOTIFYなど。

CD+特典:

全国のタワレコ、HMV、TSUTAYA他。

[広告] 楽天市場
  • 【数量限定特価】【あす楽】Panasonic/パナソニックEZ37C3工事用充電LEDマルチ投光器ライト※本体のみ<仕様>●リチウムイオン電池対応●2面フレキシブルライト●3電圧対応(14.4V/18V/21.6V)/工事用ライト/LEDライト/
  • 経口補水液(30包入) 3150円以上送料無料 水分ケア♪ ジョギングに! 粉末タイプ ミネラル オーガランド マラソン スポーツドリンク ココナッツ 人工甘味料不使用 熱中症対策 水分補給 クエン酸 【F】 _C3
  • お徳用クランベリーカプセル(2個セット・約6ヶ月分) 送料無料 トイレのお悩みに オーガランド サプリメント サプリ クランベリー ペポカボチャ キナ酸 プロアントシアニジン ビタミンC ポリフェノール 美容 【N】_C3
  • 【4色セット】CANON CRG-335 リサイクルトナー LBP9660Ci/LBP9520C/LBP843C3/LBP842C/LBP841C用 リサイクル品 (CRG335)
  • 【4色3サイズ】 ja421 新品 Champion トリコロールタグ カレッジ刺繍 パイル地 ショートパンツ C3-H508 メンズ チャンピオン タオル地 ショーツ ハーフパンツ アメカジ トリコタグ
  • [HALEO]ハレオ コア3エクストリーム〔C3X〕ハイパー(1000g/グリーンアップル味)/送料無料【HALEO+1点購入プレゼント対象商品】

シェアする

  • このエントリーをはてなブックマークに追加

フォローする