| |
|
|
| | Народ помогите плиз нужно все что возможно насчет построения их средствами PHP ток чтоб самое изображение было гладкое краяя особенно... также буду признателен увидеть исходники которые строят эти диаграммы из данных чисел.. ..
P.S. поихскал по вашему форуму нашел пару примеров но не смог запустить и увидеть изображении вместо него выводилость чтото типо
‰PNG IHDR,,NЈ~G6PLTEяяяяЛЬeЅ3Ц
|
| |
| |
|
|
| |
|
|
| |
для: sidPR
(03.04.2007 в 16:47)
| | | Старый IE не показывает PNG-изображения. Формируйте GIF. | |
| |
|
|
| |
|
|
| |
для: sidPR
(03.04.2007 в 16:47)
| | | Сначала отошлите заголовок Content-Type. | |
| |
|
|
| |
|
|
| |
для: Саня
(03.04.2007 в 16:57)
| | | IE6 FF opera9 пишут либо изображение содержит ошибочки либо выводит так .. все примеры что я нашел на форуме так вот показывает :( может кто покажет примерчик у которого он работает на машинке? | |
| |
|
|
| |
|
|
| |
для: sidPR
(03.04.2007 в 17:06)
| | | Задача 16 из одноименного раздела имеет один такой пример. | |
| |
|
|
| |
|
|
| |
для: Trianon
(03.04.2007 в 17:43)
| | | Здравствуйте, интересует такой вопрос если точечные диаграммы и круговые проблем не составляют составить на PHP то реально ли составить диаграмму "Парето"
За основу берется столбиковая диаграмма
C видом подобных диаграмм можно ознакомится на этом примере:
http://www.bio.ru/stat/p3a.gif
http://www.metrologie.ru/paretto2.gif
боле менее подробное описание
http://www.center.ru/riasite/index.phtml?tbl=tb_88&id=451
Может есть смысл опубликовать задачю на эту тему.. хотя существует множество подобных диаграмма , гистаграмм, графикам... | |
| |
|
|
| |
|
|
| |
для: tmarino
(03.04.2007 в 19:48)
| | | Я в шоке объясните почему у меня так выводит??... может у меня чтото не так | |
| |
|
|
| |
|
|
| |
для: sidPR
(03.04.2007 в 22:03)
| | | Обращайтесь непосредственно к изображению, т.е. к файлу, который прописан в атрибуте src тэга <img> - что там? Выводятся какие-нибудь сообщения об ошибках? | |
| |
|
|
| |
|
|
| |
для: cheops
(04.04.2007 в 12:07)
| | | ?img=diagram | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 13:56)
| | | прикрепите скрипт в архиве. | |
| |
|
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 15:54)
| | | по-моему, это я предложил Вам туда заглянуть.
Интерес представлял не этот, а именно тот, который у Вас. | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 15:56)
| | | Все тоже самое :)
<?php
$fileN = "data.dat";
$h = $w = 300;
//Цвета секторов (всего 15).
$r[] = 72; $g[] = 209; $b[] = 204;
$r[] = 199; $g[] = 21; $b[] = 133;
$r[] = 25; $g[] = 25; $b[] = 112;
$r[] = 245; $g[] = 255; $b[] = 250;
$r[] = 255; $g[] = 228; $b[] = 225;
$r[] = 255; $g[] = 228; $b[] = 118;
$r[] = 255; $g[] = 222; $b[] = 173;
$r[] = 0; $g[] = 0; $b[] = 128;
$r[] = 253; $g[] = 245; $b[] = 230;
$r[] = 255; $g[] = 165; $b[] = 0;
$r[] = 218; $g[] = 112; $b[] = 114;
$r[] = 205; $g[] = 133; $b[] = 63;
$r[] = 255; $g[] = 0; $b[] = 0;
$r[] = 0; $g[] = 255; $b[] = 0;
if (is_file($fileN))
{
$fd = fopen($fileN, "r");
$sum = 0;
while (!feof($fd))
{
$a = trim(fgets($fd));
//Отбрасываю пустые строки
if (!empty($a))
{
//В $exp[1] - название, в $exp[0] - кол-во.
$exp = explode(" ", $a);
$sector[$exp[1]] = $exp[0];
$sum += $exp[0];
}
}
fclose($fd);
//или рисуем диаграмму
if (isset($_GET['img']))
{
$img = imagecreatetruecolor($w+1,$h+1);
if (!$img) exit;
$white = imagecolorallocate($img, 255, 255, 255);
imagefill($img, 1, 1, $white);
$background = imagecolorallocate($img, 240, 240, 240);
$cx = $cy = $h/2;
imagefilledellipse($img ,$cx, $cy, $w ,$h, $background);
}
//или выводим таблицу
else
{
$table = "<html><head><title>диаграмма</title></head>
<body>
<img src=".$_SERVER['PHP_SELF']."?img=diagram>
<table border=1 cellpadding='3' cellspacing='0'>
<tr align='center'>
<td> цвет </td>
<td> кол-во </td>
<td> % </td>
<td> пояснение </td>
</tr>";
}
$start = 0; //Начальный угол
$ostatok = 0; //Здесь размер непрорисованных секторов.
$i = 0; //Сётчик
// В $key - название, в $val - кол-во.
foreach ($sector as $key =>$val)
{
$ugol = $val / $sum * 360;
//Сектор < 2% (2% от 360 = 7.2).
if ($ugol > 7.2)
{
//или рисуем диаграмму
if (isset($_GET['img']))
{
$color = imagecolorallocate($img, $r[$i], $g[$i], $b[$i]);
$angle_sector = $start + $ugol + $ostatok;
imagefilledarc($img ,$cx, $cy, $w, $h, $start, $angle_sector, $color, "IMG_ARC_PIE");
$start += $ugol;
}
//или выводим таблицу
else
{
$table .= "
<tr align='center'>
<td bgcolor='".sprintf("#%02x%02x%02x", $r[$i], $g[$i], $b[$i])."'></td>
<td> $val </td>
<td> ".sprintf("%.2f",($val/$sum*100))." % </td>
<td> $key </td>
</tr>";
}
$i++;
}
else
{
//Не прорисованный сектор
$ostatok += $ugol;
$table .= "
<tr align='center'>
<td> нет </td>
<td> $val </td>
<td> ".sprintf("%.2f",($val/$sum*100))." % </td>
<td> $key </td>
</tr>";
}
//Если секторов >= 15.
if ($i >= 15) break;
}
//или рисуем диаграмму
if (isset($_GET['img']))
{
header ("Content-type: image/jpeg");
imagejpeg($img);
}
//или выводим таблицу
else
{
$table .="
</table>
</body>
</html>";
echo $table;
}
}
else {echo "файл data.dat не найден";exit;}
?>
|
| |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 16:15)
| | | 1. Этот скрипт требует файл data.dat
2. Я попросил в архиве не просто так. Это единственный способ убедиться, что Вы при копировании не натолкали в начало пробелов или пустых строк.
3. У меня этот скрипт работает. см аттач. | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 16:22)
| | | Все у меня просто спереди скрипт был закоментирован свой блок... но почему он так отреогировал я непойму...
и еще она ужасно выглядит ? я видел где риализованная с мягкими кроями ... плавными... а тут одни пиксели :( | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 17:04)
| | | Потому что весь этот комментарий вылез перед кодом картинки.
Комментарии к скриптам помещают внутрь тега <?php ?>
Можно сделать более приемлемо, если формировать не .jpg, а .gif-файл строками
header ("Content-type: image/gif");
imagegif($img);
|
в соответствующем месте скрипта.
См.аттач. | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 17:52)
| | | а качество круга улучшить возможно? | |
| |
|
|
| |
|
|
| |
для: sidPR
(04.04.2007 в 21:13)
| | | Врядли. Разве что круг поверх вывести.
$color = imagecolorallocate($img, 0, 0, 0);
imageellipse($img,$cx,$cy,$w,$h, $color);
перед imagegif() | |
| |
|
|
| |
|
|
| |
для: Trianon
(04.04.2007 в 21:19)
| | | Люди добрые подскажите плиз где достать функцию или библиотеку мне нужно просто по результатм построить круговую диаграммку но исключительно чтобы оны была четкая с плавными гранями и не обрубками пикселей по краям... пожалуйста может ктото уже заморачивался на эту тему...
P.S. слышал еще о выводе средствами PHP флеш заставок или чтото подобное ???? может поможет??? | |
| |
|
|