[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Гистограммы в PHP
Гость_Sammy
Есть код горизонтальной гистограммы, что необходимо изменить в коде, чтобы гистограмма стала вертикальной. Перепробовал уйма способов ничего не получается. Подскажите, пожалуйста, очень нужно.
$width=500;
$left_margin = 50;
$right_margin = 50;
$bar_height = 40;
$bar_spacing = $bar_height/2;
$font = 'C:/WINDOWS/Fonts/arial.ttf';
$title_size = 16;
$main_size = 12;
$small_size =12;
$text_indent = 10;
$x =$left_margin + 60;
$y = 50; //то же
$bar_unit = ($width - ($x + $right_margin))/100;
$height = $num_object*($bar_height + $bar_spacing)+50;

$im = ImageCreateTrueColor ($width, $height);

$white = ImageColorAllocate ($im, 255, 255, 255);
$blue = ImageColorAllocate($im, 0, 64, 128);
$black = ImageColorAllocate ($im, 0, 0, 0);
$pink =ImageColorAllocate ($im, 255, 78, 243);

$text_color = $black;
$percent_color = $black;
$bg_color = $white;
$line_color = $black;
$bar_color = $blue;
$number_color = $pink;

ImageFilledRectangle($im, 0, 0, $width, $height, $bg_color);

ImageRectangle ($im, 0, 0, $width-1, $height-1, $line_color);

$title = "Результаты";

$title = iconv("windows-1251", "UTF-8", $title);
$title_dimensions = imagettfbbox($title_size, 0, $font, $title);
$title_length = $title_dimensions[2] - $title_dimensions[0];
$title_height = abs($title_dimensions[7] - $title_dimensions[1]);
$title_above_line = abs($title_dimensions[7]);
$title_x = ($width - $title_length)/2; //центрование по x
$title_y = ($y - $title_height)/2 + $title_above_line; //центрование по y
ImageTTFText ($im, $title_size, 0, $title_x, $title_y, $text_color, $font, $title);
ImageLine($im, $x, $y-5, $x, $height-15, $line_color);

while($row = $result->fetch_object())
{
if($total_votes > 0)
$percent = intval(($row->num_votes/$total_votes)*100);
else
$percent = 0;
$percent_dimensions = ImageTTFBBox($main_size, 0, $font, $percent.'%');
$percent_length = $percent_dimensions[2] - $percent_dimensions[0];
ImageTTFText($im, $main_size, 0, $width-$percent_length-$text_indent, $y + ($bar_height/2), $percent_color, $font, $percent.'%');

$bar_length = $x + ($percent * $bar_unit);

ImageFilledRectangle ($im, $x, $y-2, $bar_length, $y+$bar_height, $bar_color);


ImageTTFText ($im, $main_size, 0, $text_indent, $y + ($bar_height/2), $text_color, $font, "$row->object");


ImageRectangle ($im, $bar_length+1, $y-2, ($x + (100*$bar_unit)), $y+$bar_height, $line_color);
//Вывод чисел
ImageTTFText($im, $small_size, 0, $x+(100*$bar_unit)-50, $y+($bar_height/2), $number_color, $font, $row->num_votes.'/'.$total_votes);

$y=$y+($bar_height+$bar_spacing);






Спустя 33 минуты, 25 секунд (23.05.2011 - 19:18) T1grOK написал(а):
Есть один несколько грубый, но элементарный способ - перевернуть итоговое изображение!!!(может потребоваться перевернуть текст, чтоб при перевороте всего изображения все смотрелось красиво)
А если уж хочется поменять именно исходник. берешь рисуешь свою диаграмму и смотришь какая координата где находится и делаешь все наоборот smile.gif

Спустя 6 часов, 28 минут, 5 секунд (24.05.2011 - 01:46) Гость_Sammy написал(а):
Огромное спасибо, все получилось)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.