当前位置: 首页 > 后端技术 > PHP

php使用Libchart库绘制

时间:2023-03-29 19:21:36 PHP

Libchart是一个免费的用于绘制图表的PHP库。这是非常容易使用。因为是老外写的,对中文支持不好,在图表中显示为乱码。官网地址:https://naku.dohcrew.com乱码解决方法:1、自己使用Libchart库生成图表的php文件保存为utf-8编码;2、找到几个中文字体库,如中文行楷、宋体等,复制到libchartfonts目录下;3、修改libchartclasses目录下的text.php文件的第47、48行$this->fontCondensed=dirname(__FILE__)。"/../fonts/DejaVuSansCondensed.ttf";$this->fontCondensedBold=dirname(__FILE__)。“/../fonts/DejaVuSansCondensed-Bold.ttf”;更改为$this->fontCondensed=dirname(__FILE__)。“/../fonts/msyh.ttf”;#Go自己的字体目录,拖微软雅黑到程序目录下即可$this->fontCondensedBold=dirname(__FILE__)。“/../fonts/msyhbd.ttf”;去除版权信息:添加libchartclassesviewchartChart.php的第61行$this->plot->setLogoFileName(dirname(__FILE__)."/../../../images/PoweredBy.png");屏蔽或替换为对应的Logo图片。简单使用示例:1.饼图addPoint(newPoint("新浪微博",80));$dataSet->addPoint(newPoint("腾讯微博",50));$dataSet->addPoint(newPoint("网易微博",10));$chart->setDataSet($dataSet);$chart->setTitle("此数据仅供内部使用测试,不代表实际情况");$chart->render();?>2.水平条形图addPoint(newPoint("新浪微博",80));$dataSet->addPoint(newPoint("腾讯微博",50));$dataSet->addPoint(newPoint("网易微博",10));$chart->setDataSet($dataSet);$chart->getPlot()->setGraphPadding(newPadding(5,30,20,140)));$chart->setTitle("此数据仅供内部测试使用,不代表实际情况");$chart->r安德();?>3。竖条图addPoint(newPoint("Jan2013",273));$dataSet->addPoint(newPoint("Feb2013",421));$dataSet->addPoint(newPoint("March2013",642));$dataSet->addPoint(newPoint("April2013",800));$dataSet->addPoint(newPoint("May2013)",1200));$dataSet->addPoint(newPoint("2013年6月",1500));$dataSet->addPoint(newPoint("2013年7月",2600));$chart->setDataSet($dataSet);$chart->setTitle("此数据仅供内部测试使用,不代表实际情况");$chart->render();?>4.折线图addPoint(新点("05-01",273));$dataSet->addPoint(新点("05-02",421));$dataSet->addPoint(newPoint("05-03",642));$dataSet->addPoint(newPoint("05-04",799));$dataSet->addPoint(newPoint("05-05",1009));$dataSet->addPoint(newPoint("05-05",1405));$dataSet->addPoint(newPoint("05-07",1820));$dataSet->addPoint(新点("05-08",2511));$dataSet->addPoint(新点("05-09",2832));$dataSet->addPoint(新点("05-10",3550));$dataSet->addPoint(newPoint("05-11",4143));$dataSet->addPoint(newPoint("05-12",4715));$chart->setDataSet($dataSet);$chart->setTitle("此数据仅用于内部测试,不代表实际情况");$chart->render();?>上面的例子是调用libchart最简单的方法。如果需要在磁盘上生成一张图片,供其他地方调用,方法很简单:只需要??blockheader("Content-type:image/png");并修改$chart->render();到$chart->render("生成的图像路径");HTML中调用如下: