
No.4ベストアンサー
- 回答日時:
phptest さん、レスありがとうございます。
良いサンプルは なかなか無いみたいなので、自分で書いちゃいました。ご参考にどうぞ:
<?php
header("Content-Type: image/png");
//グラフを作る領域を決める
$im = imagecreate(200, 200) or die("error!\n");
//グラフの背景色 $bg
$bg = imagecolorallocate($im, 0, 0, 0);
//領域を塗る色 $fg[]
$fg[0] = imagecolorallocate($im, 255, 255, 0);
$fg[1] = imagecolorallocate($im, 0, 255, 255);
$fg[2] = imagecolorallocate($im, 255, 0, 255);
$fg[3] = imagecolorallocate($im, 0, 255, 0);
//描画(線を描く)色 $cg
$cg = imagecolorallocate($im, 255, 255, 255);
//--------------------------------------------
//処理したいデータ:A=100,B=150,C=200,D=150
$idata = Array(100,150,200,150);
//--------------------------------------------
$isum = array_sum($idata);
$icount = count($idata);
//外側の円を描く
imagearc($im,100,100,150,150,0,360,$cg);
//スタートの区切り線(ゼロの線)を描く
$x0 = 100;
$y0 = 25;
imageline($im,100,100,$x0,$y0,$cg);
//データを読みながら、区切り線を描いてゆき、領域を塗る
for($i = 0; $i < $icount; $i++) {
$theta = $theta + $idata[$i] / $isum * 360;
$endx = 100 + (150 / 2) * sin($theta * 2 * 3.1416 / 360);
$endy = 100 - (150 / 2) * cos($theta * 2 * 3.1416 / 360);
imageline($im,100,100,$endx,$endy,$cg);
imagefilltoborder($im, ($x0 + $endx + 100)/3, ($y0 + $endy + 100)/3, $cg,$fg[fmod($i,4)]);
$x0 = $endx;
$y0 = $endy;
}
//メモリを解放
imagepng($im);
imagedestroy($im);
?>
No.3
- 回答日時:
PHPでグラフといえばJpGraphが有名ですね
GD1にも対応しているようですがPHPの方が4.3.1以上必要のようです
ソースのjpgraph_pie.phpが円グラフのようなので参考になるのでは
参考URL:http://www.aditus.nu/jpgraph/
No.2
- 回答日時:
phptest さん、こんばんは!
さて円グラフ作成についてのご質問。
ちょっとプログラミングの手間はかかりますが、お手元の環境で もし
[1]楕円を描く:imagearc()
[2]直線を描く:imageline()
[3]特定色での塗りつぶし:magefilltoborder()
の3つの関数が使えるのであれば、円グラフを描くことができます。具体的には[1]で外側を描き、[2]で円内の区切りを描き、[3]で色をつける…という手順になるでしょう。
もしご不明の点があれば、追加でご質問どうぞ。
参考URL:http://search.net-newbie.com/php/ref.image.html
この回答への補足
ご回答ありがとうございます。
やはり、ご回答いただいたやり方でやるしかないようですね。
とりあえず、[1]の円を描くのは大丈夫ですが、
[2]と[3]が、難しいですね。。。
形としては、4つの値を元に円グラフを描きたいと考えています。
例えば、
A=100
B=150
C=200
D=150
のような値がある場合、それぞれの割合を計算して、
描画したいのですが、良いサンプルなどないでしょうか?
No.1
- 回答日時:
PHPはまだ始めたばかりなのでバージョンとかよくわかりませんが
下のサイトで円グラフ・棒グラフ・折れ線グラフ・レーダーグラフの書き方が載ってます
僕はまだスクリプトの記述は出来ないのでレーダーグラフのスクリプトを少し変えて使っています
参考URL:http://www.gadgety.net/shin/tips/unix/php-gd.html
この回答への補足
サイトを拝見したのですが、
どうもGDのバージョンが2.0以上でないと難しいかもしれないですね。
今からサーバの設定等を変更するのは難しいので、
現状でなんとか対応できればいいのですが。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpにて、ipアドレスによる処理...
-
バッチを用いたフォルダの自動移動
-
FTPコマンドでディレクトリごと...
-
「クラス関数」「メンバ関数」...
-
PHPのif文でその処理を途中で抜...
-
Subversionのリポジトリの削除
-
PHPの文字化け
-
PHPで韓国語の表示がうまくいき...
-
Visual C++ 2005 Express Editi...
-
LoadLibraryの戻り値(HMODULE)...
-
インクルードした部分が表示さ...
-
mPDFでのPDF出力がうまくいかな...
-
HOSTSファイルについて
-
テキストリンクを2回クリックし...
-
mysql複数レコードをまとめて削...
-
PHPから別なPHPへ移動(?)する方法
-
require_once()でファイルが読...
-
FTP接続の例外処理
-
includeでHTMLファイルを呼出し...
-
onedrive にexcelファイルをア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
php4.3のオブジェクト解放
-
メールフォームが文字化けしま...
-
コーディングの綺麗な、サンプ...
-
PHPスクリプトにプロキシを弾か...
-
GPLライセンスについて
-
海外のphpスクリプトを日本語対...
-
レッツPHP内スクリプトが思うと...
-
外注PHPソースからWorm.Avron検...
-
データの送受信を行うための環境
-
$_SERVER と $_ENV の違い
-
ブログのようなコメント機能を...
-
PHPで指定サイトで検索した結果...
-
phpと<?xml version="1.0" enco...
-
読み込み先を制限するには…
-
ステップカウンタ(PHP)
-
スクリプト終了時に呼び出す関...
-
オブジェクト指向の勘違い?
-
携帯電話でphpのコーディングを...
-
最後1行だけ…どのように書き直...
おすすめ情報