![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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で質問しましょう!
似たような質問が見つかりました
- 待ち受け・壁紙 高画質の壁紙って、何ピクセルですか!! 3 2022/05/29 14:54
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- ノートパソコン OpenOffice Draw でドーナツ型円グラフを作成する方法 1 2022/04/08 23:17
- その他(ソフトウェア) CLIP STUDIOを起動してまず出る素材とかの管理画面ってどういう名前ですか? あと、描画画面は 2 2023/08/04 06:50
- 数学 三角関数について 3 2022/11/22 05:49
- スピーカー・コンポ・ステレオ ワード。オブジェクトの上に半円を描くには。 2 2022/10/06 13:02
- 画像編集・動画編集・音楽編集 ワード。頂点の編集。 4 2022/09/28 14:14
- ノートパソコン Open Office.orgのDrawで描いた図形の塗りつぶしをしたい 1 2022/03/22 19:24
- CAD・DTP AUTO CAD操作方法 半円の書き方 1 2022/06/20 09:16
- 日本語 助詞「は」と「が」の使い方の違いを教える簡単な方法 21 2022/08/16 08:06
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
簡単な心理テストを作りたい
-
phpと<?xml version="1.0" enco...
-
円グラフ描画について
-
PHPの吐くデバッグ行番号の見方...
-
HTMLで入力されたデータをPOST...
-
PHP PCアクセス制限
-
会議室予約のPHPスクリプト
-
MacブラウザのSafariで文字化け...
-
オブジェクト指向の勘違い?
-
画像掲示板用のPHPかCGIスクリ...
-
onedrive にexcelファイルをア...
-
CFileDialogの最初のディレクト...
-
透過PNGが透過されない!!
-
フォームで戻った際に入力済み...
-
別ファイルの変数を呼び出した...
-
PHPのif文でその処理を途中で抜...
-
phpの中でphpを書けないか
-
さくらサーバーにて、phpからメ...
-
リンク先を隠す方法はないでし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
ステップカウンタ(PHP)
-
phpと<?xml version="1.0" enco...
-
HTMLで入力されたデータをPOST...
-
phpにて、ipアドレスによる処理...
-
簡単な心理テストを作りたい
-
FC2ブログへの投稿 カテゴリー...
-
円グラフ描画について
-
スクリプト終了時に呼び出す関...
-
textareaで入力できる文字数を...
-
会議室予約のPHPスクリプト
-
PHPスクリプトにプロキシを弾か...
-
FPDFについて
-
動的にラジオボタンを増やす方法
-
外注PHPソースからWorm.Avron検...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
こちらはただの直列処理ですか?
-
別ファイルの変数を呼び出した...
おすすめ情報