Hey Tôi muốn vẽ một đồ thị (Phân phối nhãn hiệu Stdent) trong trang web của tôi dựa trên PHP. Tôi có thể làm cái này như thế nào?Làm thế nào để vẽ một đồ thị trong PHP?
Trả lời
Đặt cược tốt nhất của bạn là tra cứu php_gd2. Đó là một thư viện hình ảnh khá tốt mà đi kèm với PHP (chỉ cần vô hiệu hóa trong php.ini), và không chỉ bạn có thể xuất hình ảnh của bạn thành một vài định dạng, nó có đủ chức năng mà bạn sẽ có thể làm một đồ thị khá dễ dàng .
EDIT: nó có thể giúp đỡ nếu tôi đưa cho bạn một vài liên kết hữu ích:
http://www.libgd.org/ - Bạn có thể nhận mới nhất php_gd2
đây
http://ca3.php.net/gd - Tài liệu hướng dẫn php_gd
.
Ngoài ra còn có một số thư viện đồ hoạ có sẵn cho PHP để làm cho cuộc sống của bạn đơn giản hơn. JPGraph là một ứng dụng tốt (không miễn phí).
Bạn có thể sử dụng google's chart api để tạo biểu đồ.
Biểu đồ Google Api chỉ là phía máy khách. Họ sử dụng để cung cấp một tải về phía máy chủ nhưng đó là lâu rồi. – allencoded
Không có ý tưởng về gd2, nhưng tôi đã thực hiện một điều tương tự với gd và điều đó không khó.
Đến http://www.php.net/ và tìm kiếm những thứ như
- ImageCreate
- imageline
- imagestring
Nó không phải là hào nhoáng như một số những giải pháp khác trên mạng, nhưng kể từ khi bạn tạo ra một hình ảnh nó sẽ làm việc trong tất cả các trình duyệt. (trừ lynx ... :-))
/Johan
Cập nhật: Tôi gần như quên, không sử dụng jpeg cho loại hình ảnh. Các đồ tạo tác jpeg sẽ thực sự gây phiền nhiễu, png là giải pháp tốt hơn.
<?
# ------- The graph values in the form of associative array
$values=array(
"Jan" => 110,
"Feb" => 130,
"Mar" => 215,
"Apr" => 81,
"May" => 310,
"Jun" => 110,
"Jul" => 190,
"Aug" => 175,
"Sep" => 390,
"Oct" => 286,
"Nov" => 150,
"Dec" => 196
);
$img_width=450;
$img_height=300;
$margins=20;
# ---- Find the size of graph by substracting the size of borders
$graph_width=$img_width - $margins * 2;
$graph_height=$img_height - $margins * 2;
$img=imagecreate($img_width,$img_height);
$bar_width=20;
$total_bars=count($values);
$gap= ($graph_width- $total_bars * $bar_width)/($total_bars +1);
# ------- Define Colors ----------------
$bar_color=imagecolorallocate($img,0,64,128);
$background_color=imagecolorallocate($img,240,240,255);
$border_color=imagecolorallocate($img,200,200,200);
$line_color=imagecolorallocate($img,220,220,220);
# ------ Create the border around the graph ------
imagefilledrectangle($img,1,1,$img_width-2,$img_height-2,$border_color);
imagefilledrectangle($img,$margins,$margins,$img_width-1-$margins,$img_height-1-$margins,$background_color);
# ------- Max value is required to adjust the scale -------
$max_value=max($values);
$ratio= $graph_height/$max_value;
# -------- Create scale and draw horizontal lines --------
$horizontal_lines=20;
$horizontal_gap=$graph_height/$horizontal_lines;
for($i=1;$i<=$horizontal_lines;$i++){
$y=$img_height - $margins - $horizontal_gap * $i ;
imageline($img,$margins,$y,$img_width-$margins,$y,$line_color);
$v=intval($horizontal_gap * $i /$ratio);
imagestring($img,0,5,$y-5,$v,$bar_color);
}
# ----------- Draw the bars here ------
for($i=0;$i< $total_bars; $i++){
# ------ Extract key and value pair from the current pointer position
list($key,$value)=each($values);
$x1= $margins + $gap + $i * ($gap+$bar_width) ;
$x2= $x1 + $bar_width;
$y1=$margins +$graph_height- intval($value * $ratio) ;
$y2=$img_height-$margins;
imagestring($img,0,$x1+3,$y1-10,$value,$bar_color);imagestring($img,0,$x1+3,$img_height-15,$key,$bar_color);
imagefilledrectangle($img,$x1,$y1,$x2,$y2,$bar_color);
}
header("Content-type:image/png");
imagepng($img);
$_REQUEST['asdfad']=234234;
?>
Bởi đến nay các giải pháp đơn giản nhất là chỉ cần sử dụng Google Chart API http://code.google.com/apis/chart/
Bạn có thể làm cho đồ thị thanh, biểu đồ, sử dụng 3D, và nó dễ dàng như việc xây dựng một url với một số thông số. Xem ví dụ đơn giản dưới đây.
- 1. Làm thế nào tôi có thể vẽ đồ thị của một đồ thị trong gnuplot?
- 2. Làm thế nào để vẽ một đồ thị trong Android như Wifi Analyzer App?
- 3. đồ thị Vẽ trong Django
- 4. Làm thế nào để vẽ biểu đồ nến trong C#
- 5. Làm thế nào để vẽ Stacked Bar Đồ thị trong iOS
- 6. Làm thế nào để vẽ một hình chữ nhật trên một khu vực cụ thể trong một đồ thị matplotlib
- 7. Làm thế nào để vẽ đồ thị trong bộ đệm khung bằng ngôn ngữ c ..?
- 8. Vẽ đồ thị trên java
- 9. Làm thế nào để làm đồ thị bong bóng?
- 10. Vẽ một đồ thị tương quan trong matplotlib
- 11. Vẽ đồ thị/Vẽ một tệp Wav java
- 12. Làm thế nào để vẽ một phạm vi ngày trên trục X trong Biểu đồ Flot?
- 13. Làm thế nào để vẽ đồ thị bằng cách sử dụng R, Java và JRI?
- 14. Làm thế nào để Vẽ một Biểu đồ Trước khi Binned Trong R
- 15. Làm thế nào để vẽ một vòng tròn trong suốt?
- 16. Làm thế nào để vẽ một cây đại diện cho một đồ thị của các nút được kết nối?
- 17. Vẽ tương tác trong R đồ thị
- 18. Làm cách nào để vẽ đồ thị phân loại của SVM trong R
- 19. Làm thế nào để in một đồ thị trong graphviz với nhiều thuộc tính hiển thị
- 20. Làm thế nào để vẽ một sơ đồ trong kiến trúc sư doanh nghiệp?
- 21. vẽ đồ thị trên Google Maps
- 22. Làm thế nào để vẽ một BitmapFont trong LibGDX?
- 23. Vẽ lưới và đồ thị bằng Networkx
- 24. Làm thế nào để sử dụng đường cong hàm trong [R] để vẽ đồ thị đường cong bình thường?
- 25. Làm cách nào để vẽ một mũi tên trên biểu đồ được vẽ bằng ggplot2?
- 26. Làm thế nào để vẽ một vòng tròn trong img bằng cách sử dụng php?
- 27. làm thế nào để hiển thị lỗi MySql trong php
- 28. Làm cách nào để vẽ biểu đồ một biểu đồ xếp chồng 3D trong R?
- 29. Vẽ đồ thị bằng Python 3.x
- 30. Làm thế nào tôi có thể vẽ đồ thị chuỗi thời gian với Perl?
Loại phát minh lại bánh xe .. trừ khi bạn muốn xây dựng khung của riêng mình. – h3xStream
không chắc chắn nếu đó là một câu trả lời hữu ích thực sự. Nói rằng tôi muốn làm mịn đường cong, thêm chú giải, văn bản chú giải vị trí ở trên cùng hoặc dưới cùng, đánh dấu các dấu tick lớn và dấu tick nhỏ như vậy, thêm một đường trục Y thứ hai, thứ ba, thứ tư, v.v. tạo biểu đồ của riêng bạn. Điều này là rất tốt cho những người muốn tạo một phần mềm biểu đồ, nhưng khi nói đến việc sử dụng một phần mềm biểu đồ, và muốn phát triển tốc độ, điều này chỉ là quá nhiều đau đớn. – Dennis