
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を探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
PHPSpreadsheetによる書き出し...
-
EC-CUBEをeclipseからコンパイ...
-
php エラー
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
php エラー
-
phpinfo で MySQL のバージョン...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上の論理積は利用可能なの...
-
php4.3のオブジェクト解放
-
メールフォームが文字化けしま...
-
コーディングの綺麗な、サンプ...
-
PHPスクリプトにプロキシを弾か...
-
GPLライセンスについて
-
海外のphpスクリプトを日本語対...
-
レッツPHP内スクリプトが思うと...
-
外注PHPソースからWorm.Avron検...
-
データの送受信を行うための環境
-
$_SERVER と $_ENV の違い
-
ブログのようなコメント機能を...
-
PHPで指定サイトで検索した結果...
-
phpと<?xml version="1.0" enco...
-
読み込み先を制限するには…
-
ステップカウンタ(PHP)
-
スクリプト終了時に呼び出す関...
-
オブジェクト指向の勘違い?
-
携帯電話でphpのコーディングを...
-
最後1行だけ…どのように書き直...
おすすめ情報