背景知识

JpGraph:以前用PHP作图时必须要掌握复杂抽象的画图函数,或者借助一些网上下载的花柱形图、饼形图的类来实现。没有一个统一的chart类来实现图表的快速开发。

现在我们有了一个新的选择:JpGraph。专门提供图表的类库。它使得作图变成了一件非常简单的事情,你只需从数据库中取出相关数据,定义标题,图表类型,然后的事情就交给JpGraph,只需掌握为数不多的JpGraph内置函数(可以参照JpGraph附带例子学习),就可以画出非常炫目的图表!

一、 JpGraph安装方法:

1、先到http://www.aditus.nu/jpgraph/下载最新的版本。

2、确保你的PHP版本最低为4.04(最好是4.1.1),并且支持GD库。必须确保GD库可以正常运行,可以通过运行phpinfo()来查看GD库的信息是否存在的方法来判断。同时要有要求GD库的版本应为2.0,而不是1.0。

3、将下载的JpGraph压缩包解压到任意文件夹。

4、设置jpgraph.php(jpgraph的主配置文件)。设置jpgraph的cache(缓存)文件夹,和TTF(字体)文件夹。

分别在35行和38行

35 // DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");

38 // DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");

Linux系统改为:

DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");

DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");

Windows系统改为:

DEFINE("CACHE_DIR","c:/apache/htdocs/ jpgraph_cache/");

DEFINE("TTF_DIR","c:/windows/fonts");

注意事项:

(1)cache(缓存)文件夹路径可以自己定义,而TTF(字体)文件夹必须是%system%/Fonts。

(2)确保PHP对cache(缓存)文件夹有写的权限。

5、完成上述设置后就可以使用JpGraph了,可以先将JpGraph的例子copy到htdocs文件夹中,运行一下看看。呵呵,200多个例子,包含各类图表,够学一阵子的。

在实际使用中,如果还有一些不懂或者不太明白地方,可以参考bkJia中文发布的 bkJia视频教程85:PHP 图表类 JPGraph 入门配置与应用

从数据库中读取数据到jpgraph图表中

1、将./src/Examples目录中的文件example16.2.php以及./src目录中的文件jpgraph_bar.php、jpgraph_gradient.php、jpgraph_line.php、jpgraph_plotmark.inc、jpgraph.php拷贝到同一目录下。

2、建立数据库jpg,数据库表test

建立2个字段:

id(主键):int

number:int

并添加一些数据

3、修改example16.2.php

修改后的代码

include("jpgraph.php");

include("jpgraph_line.php");

include("jpgraph_bar.php");

$connect=mysql_connect("localhost","root","");

mysql_select_db("jpg",$connect);

$query=mysql_query("select * from test",$connect);

$i=0;

while($array=mysql_fetch_array($query)) {

$l2datay[$i]=$array["number"];

$i++;

}

mysql_close($connect);

// Create the graph.

$graph=newGraph(400,200,"auto");

$graph->SetScale("textlin");

$graph->img->SetMargin(40,130,20,40);

$graph->SetShadow();

// Create the bar plot

$bplot=newBarPlot($l2datay);

$bplot->SetFillColor("orange");

$bplot->SetLegend("Result");

// Add the plots to the graph

$graph->Add($bplot);

$graph->title->Set("Adding a line plot to a bar graph v1");

$graph->xaxis->title->Set("X-title");

$graph->yaxis->title->Set("Y-title");

$graph->title->SetFont(FF_FONT1,FS_BOLD);

$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);

$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

//$graph->xaxis->SetTickLabels($datax);

//$graph->xaxis->SetTextTickInterval(2);

// Display the graph

$graph->Stroke();

?>

4、刷新页面即可看到结果

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php中绘制图像的手册,推荐功能超级强大的PHP画图库JpGraph相关推荐

  1. PHP中绘制图像的一些函数总结

    在PHP中绘制图像的函数非常丰富,包括点.线.各种几何图形等可以想象出来的平面图形,都可以通过PHP中提供的各种画图函数完成.我们在这里介绍一些常用的图像绘制,如果使用我们没有介绍过的函数,可以参考手 ...

  2. php画星球,PHP中绘制图像的一些函数总结

    在PHP中绘制图像的函数非常丰富,包括点.线.各种几何图形等可以想象出来的平面图形,都可以通过PHP中提供的各种画图函数完成.我们在这里介绍一些常用的图像绘制,如果使用我们没有介绍过的函数,可以参考手 ...

  3. python tkinter画笑脸_python – 如何在tkinter窗口中绘制图像

    如何在tkinter窗口中绘制图像(我使用的是 python 3.3)?我正在寻找一个可以在tkinter窗口的给定位置绘制图像的语句. 是啊- 任何答案将不胜感激.这里是我想要使用代码的程序的源代码 ...

  4. android平台自动签名工具,功能超级强大的AI驱动自动一键安卓抠图工具,人物商品衣图章签名...

    原标题:功能超级强大的AI驱动自动一键安卓抠图工具,人物商品衣图章签名 抠图是我们日常工作中经常遇到的一项工作,比方说扣个签名,扣个人像,或者给产品扣一张白底图,但是很多软件我们试过以后,发现都不太好 ...

  5. HttpSender OkHttp+RxJava超好用、功能超级强大的Http请求框架

    HttpSender HttpSender 是对OkHttp二次封装,并与RxJava做到了无缝连接,支持任意Http请求方式,如:Get.Post.Head.Put等:也支持任意数据解析方法,如:J ...

  6. matplotlib——在 Jupyter Notebook中绘制图像时只显示变量信息不显示图片

    1 问题描述 最近我在使用 Jupyter Notebook做实验时,使用matplotlib包绘制图像,但是显示图像时,只看到打印的变量信息,却没有显示图像: 后来就请教了一下度娘- 2 解决方案 ...

  7. matlab中绘制图像

    %MALTLAB绘图基础 %plot函数的用法 %plot(X,Y,LineSpec) %线形(四种):-实线:--虚线::点线:-.点划线 %坐标点样式(常用的几种):o圆 *星 x十字 s正方形 ...

  8. MFC在对话框中绘制图像

    在OnPaint函数的基础上接着写如下绘制代码 //初始化画笔类对象HDC hdc = ::GetDC(m_hWnd);HPEN hp;HBRUSH hbr;HFONT hf;TEXTMETRIC t ...

  9. c 调用python clion_CLion 2018.1.3 功能超级强大的跨平台 C 开发工具

    CLion是一款专为开发C及C++所设计的跨平台IDE.它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力.Clion 2018是一款用于C和C++的跨平台IDE,该软件支持 ...

最新文章

  1. 一周AI回顾 | 特斯拉AI负责人说神经网络正在改变编程,机器学习大神Bengio新论文专注RNN优化
  2. AndroidUI 视图动画-旋转动画效果 (RotateAnimation)
  3. 什么是移臂调度,什么是旋转调度?
  4. 机房系统(十)——【结账】
  5. php和web服务器,php与web服务器关系
  6. 深入理解 JVM Class文件格式(五)
  7. unity android sd卡路径,一、文件与路径——2、unity路径特点写法和文件读写全攻略...
  8. Table of Delphi data types and C++ types
  9. git合并分支的时候将某个文件添加到忽略列表_常用的 Git 命令
  10. javascript该怎么学呢?值得收藏的学习Js之路
  11. 离线安装pymysql和dbutils
  12. 苹果cms模板_我的主题网【第二十五套】精简宽屏大气苹果CMSv10模板DIY系列拆分版...
  13. Cocoapods的安装及使用
  14. Laya中使用tiledMap瓦片地图以及遇到的坑
  15. 计算机病毒按破坏性分为哪两类,什么是计算机病毒?按照计算机病毒的链结方式分类,计算机病毒可分为哪几类...
  16. Linux操作系统中常用软件包的下载命令
  17. java ape切割_无损分解和保持依赖的判断
  18. 将Carte部署为Windows服务
  19. ping ping ping
  20. [小说]魔王冢(48)诏告

热门文章

  1. 解决XP的IIS HTTP 500”内部服务器错误
  2. Static allocator 3
  3. 文件服务器 重复文件,ftp服务器校验重复文件
  4. 小车自动往返工作原理_请把小车自动往返控制线路的工作原理描述一下。
  5. python网络爬图_Python爬虫爬图片需要什么
  6. 安装了mySQL后怎么导入数据_mysql安装、配置、导入数据库
  7. java 坦克大战_java课程设计之坦克大战
  8. python如何叉乘_向量点乘与向量叉乘
  9. Python:time库使用方法
  10. Qt connect()的第五种重载[=](){}