settheme php,Jpgraph使用demo

require_once(‘jpgraph-4.0.2/src/jpgraph.php‘);

$ac=‘c‘;

if($ac==‘a‘){

/********************条形图************************/

require_once(‘jpgraph-4.0.2/src/jpgraph_bar.php‘);//条形图的类

//创建图表数据

$xdata = array(‘Mousemats‘, ‘Pens‘, ‘T-Shirts‘, ‘Mugs‘);

$ydata = array(35, 43, 15, 10);

/*创建图形对象,设置尺寸和背景颜色*/

//设置图表宽,高,缓存文件名称

$graph = new Graph(500,400,‘auto‘);

//设置边距

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

//刻度类型,设置比例 (X 文本比例、Y 线比例)

$graph->SetScale(‘textlin‘);

//设置背景颜色

$graph->SetColor(‘white‘);

//设置外边框背景颜色

$graph->SetmarginColor(‘darkgray‘);

//使用背景阴影

$graph->SetShadow();

//设置框架颜色

$graph->SetFrame(true,‘black‘);

/*设置图形标题*/

//标题文本

$graph->title->Set(‘Sales figures for march‘);

//标题颜色

$graph->title->SetColor(‘white‘);

//标题字体

$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);

/*构建x轴*/

//轴标题文本

$graph->xaxis->title->Set(‘Product type‘);

//轴标题颜色

$graph->xaxis->title->SetColor(‘black‘);

//轴标题字体

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

//设置标志数据(每个数据的标志)

$graph->xaxis->SetTickLabels($xdata);

//轴颜色

$graph->xaxis->SetColor(‘black‘,‘white‘);

//轴字体

$graph->xaxis->SetFont(FF_VERDANA, FS_NORMAL,8);

//隐藏十字叉

$graph->xaxis->HideTicks();

/*构建Y轴*/

//轴标题文本

$graph->yaxis->title->Set(‘Units Sold‘);

//轴标题颜色

$graph->yaxis->title->SetColor(‘black‘);

//轴标题字体

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

//轴颜色

$graph->yaxis->SetColor(‘black‘,‘white‘);

//轴字体

$graph->yaxis->SetFont(FF_VERDANA, FS_NORMAL,8);

//隐藏十字叉

$graph->yaxis->HideTicks();

/*新建BarPlot对象处理图形中的条状绘制*/

//传入数据实例图表

$bplot = new BarPlot($ydata);

//设置条宽度

$bplot->SetWidth(0.75);

//设置条背景颜色

$bplot->SetFillcolor(‘darkgray‘);

/*将条形图对象添加到图形对象*/

$graph->Add($bplot);

//发送到浏览器

$filename = ‘images/‘.time().‘.png‘;

$graph->Stroke($filename);

}

if($ac==‘b‘){

/********************饼图***********************/

//图表主类

require_once(‘jpgraph-4.0.2/src/jpgraph_pie.php‘);

require_once(‘jpgraph-4.0.2/src/jpgraph_pie3d.php‘);

//创建图表数据

$xdata = array(‘Mousemats‘,‘Pens‘,‘T-Shirts‘,‘Mugs‘);

$ydata = array(35,43,15,10);

/*创建图形对象*/

//设置图表宽,高,缓存文件名称

$graph = new PieGraph(400,200,‘auto‘);

//设置背景颜色

$graph->SetMarginColor(‘white‘);

//使用背景投影

$graph->SetShadow();

//设置框架颜色

$graph->SetFrame(true,‘black‘);

/*设置图形标题*/

$graph->title->Set(‘March Sales‘);

//标题颜色

$graph->title->SetColor(‘black‘);

//标题字体

$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);

/*创建图例标识饼图每部分代表的含义*/

//图例文本颜色

$graph->legend->SetColor(‘black‘);

//图例背景颜色

$graph->legend->SetFillColor(‘gray‘);

//图例方位

$graph->legend->Pos(0.02,0.86);

/*创建三维饼图对象*/

//传入Ydata实例它

$pie = new PiePlot3d($ydata);

//把Xdata传入图例中

$pie->SetLegends($xdata);

//设置颜色主题 (earth|pastel|sand|water)

$pie->SetTheme(‘earth‘);

//设置相对X轴的中心

$pie->SetCenter(0.36);

//设置饼图的半径(单位px)

$pie->SetSize(100);

//设置标题的角度

$pie->SetAngle(30);

/*突出显示两个扇形区*/

//分开成多少片

$pie->ExplodeSlice(2);

//另一个分开成多少片

$pie->ExplodeSlice(3);

/*在图形上每个部分旁显示标识该部分的百分比*/

//设置字体

$pie->value->SetFont(FF_VERDANA,FS_NORMAL,10);

//字体颜色

$pie->value->SetColor(‘black‘);

/*将饼图对象添加到图形对象并发送到浏览器*/

$graph->Add($pie);

$filename = ‘images/‘.time().‘.png‘;

$graph->Stroke($filename);//输出图像

//可以输入文件名创建文件而不输出

//例:$graph->Stroke(‘humble_pie.png‘);

}

if($ac==‘c‘){

/****************折线图********************/

require_once(‘jpgraph-4.0.2/src/jpgraph_line.php‘); //LinePlot 类

$aAxisType = ‘intlin‘; //第一个int是X轴类型第2个lin是Y轴类型

$yScaleMin = 0; //Y轴最小值, 如果不需要设置,可以为空,或者NULL,下同

$yScaleMax = 11; //Y轴最大值

$xScaleMin = 1; //X轴最大值

$xScaleMax = 24; //X轴最大值

$unitType = ‘月份‘;

$chartDataTmpArr = array(‘1‘ => ‘1‘, ‘2‘ => ‘0‘, ‘3‘ => ‘4‘, ‘4‘ => ‘5‘, ‘5‘ => ‘7‘, ‘6‘ => ‘8‘, ‘7‘ => ‘4‘, ‘8‘ => ‘6‘, ‘9‘ => ‘8‘, ‘10‘ => ‘7‘, ‘11‘ => ‘4‘, ‘12‘ => ‘5‘, ‘13‘ => ‘4‘, ‘14‘ => ‘6‘, ‘15‘ => ‘4‘, ‘16‘ => ‘2‘, ‘17‘ => ‘2‘, ‘18‘ => ‘2‘, ‘19‘ => ‘2‘, ‘20‘ => ‘7‘, ‘21‘ => ‘6‘, ‘22‘ => ‘1‘, ‘23‘ => ‘4‘, ‘24‘ => ‘4‘);

$chartDataTmpArr2 = array(‘1‘ => ‘2‘, ‘2‘ => ‘0‘, ‘3‘ => ‘2‘, ‘4‘ => ‘2‘, ‘5‘ => ‘8‘, ‘6‘ => ‘9‘, ‘7‘ => ‘5‘, ‘8‘ => ‘7‘, ‘9‘ => ‘9‘, ‘10‘ => ‘7‘, ‘11‘ => ‘4‘, ‘12‘ => ‘7‘, ‘13‘ => ‘2‘, ‘14‘ => ‘4‘, ‘15‘ => ‘5‘, ‘16‘ => ‘6‘, ‘17‘ => ‘0‘, ‘18‘ => ‘3‘, ‘19‘ => ‘6‘, ‘20‘ => ‘5‘, ‘21‘ => ‘8‘, ‘22‘ => ‘9‘, ‘23‘ => ‘4‘, ‘24‘ => ‘4‘);

$graph = new Graph($width = 780 , $height = 400); //创建新的Graph对象

$graph->SetScale($aAxisType, $yScaleMin, $yScaleMax, $xScaleMin, $xScaleMax); //设置刻度模式SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1)

$graph->img->SetMargin(40, 20, 50, 50) ; //设置图表边界

$title = date("Y-m-d H:i:s")."统计图";

$graph->title->SetFont(FF_SIMSUN,FS_BOLD); //设置图表标题的字体类型

$graph->title->Set(iconv("UTF-8","GB2312//IGNORE",$title));

$graph->title->SetMargin (20);

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

$graph->xaxis->title->Set(iconv("UTF-8","GB2312//IGNORE",$unitType));

$graph->xaxis->title->SetMargin(14);

$graph->legend->SetLineWeight(2); //设置图例文字的字体

$lineplot = new LinePlot($chartDataTmpArr); //创建要画的一地条曲线的对象

$lineplot->SetWeight(2); //曲线的线宽

$lineplot->SetLegend(iconv("UTF-8","GB2312//IGNORE","进入"));//设置图例文字

$graph->legend->Pos( 0.025, 0.08, "right","center" ); //图例文字框的位置 0.025,0.08 是以右上角为基准的,0.025是距左右距离,0.08是上下距离。

$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);

$graph->legend->SetLayout(‘1‘); //如果有两条曲线,他们的图例文字并排放置。

$graph->legend->SetFrameWeight(0); //图例文字外框边框border设置为0

$graph->legend->SetFillColor(‘#C8C8C8‘); //图例文字框内的填充颜色

$graph->legend->SetShadow(‘#C8C8C8‘, 0); //设置图例文字框的阴影部分颜色和border

$lineplot->SetColor("orange"); //设置曲线颜色

$graph->Add($lineplot); //在统计图上绘制曲线

$lineplot2 = new LinePlot($chartDataTmpArr2); //创建一条新的曲线对象

$lineplot2->SetLegend(iconv("UTF-8","GB2312//IGNORE","出去"));

$lineplot2->SetWeight(2);

$lineplot2->SetColor("blue");

$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);

$graph->Add($lineplot2);

$filename = ‘images/‘.time().‘.png‘;

$graph->Stroke($filename);

}

48c6cd15fe451e06ec6e3f7f8c2e9375.png

e6ba84919d03f1fd39bd9fa36dd272df.png

67d29655aa1811b078727463a8c78bac.png

引入了文件.然后写数据.

$ydata=array(11,3,8,12,5,1,9,13,5,7);

设置图表大小.

$graph=newGraph(350,250);

刻度类型:$graph->SetScale(‘textlin‘);

比如强制如此设置.

$graph->SetScale(‘textlin‘,0,200);

576b0af360e123186d3e1bef7fcd1330.png

注入y轴数据,设置颜色.

$lineplot=newLinePlot($ydata);

$lineplot->SetColor(‘blue‘);

设置两条也是一个道理的.$lineplot=newLinePlot($ydata);

$lineplot->SetColor(‘blue‘);

$slineplot=newLinePlot($sydata);

$slineplot->SetColor(‘red‘);

$graph->Add($lineplot);

$graph->Add($slineplot);

设置图例:

$lineplot->SetLegend(‘Label 1‘);

$slineplot->SetLegend(‘Label 2‘);

867a1008c283f8ba6ebaea0aead46974.png

解决中文乱码

取前篇的代码片断如下//设置图表的标题字体、大小

$graph->title->Set("Accumulated bar plots");

$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->title->Set(iconv("UTF-8","GB2312//IGNORE","网志博客信息统计表"));

$graph->xaxis->title->Set(iconv("UTF-8","GB2312//IGNORE","X-标题"));

$graph->yaxis->title->Set(iconv("UTF-8","GB2312//IGNORE","Y-标题"));

//和上面标题对应,设置标题的字体和大小

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

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

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

使用php函数据中文由UTF-8转为GB2312,记住由于iconv本身的一个bug,iconv在转换字符"—"到gb2312时会出错,所以在需要转成的编码后加上 "//IGNORE" 。

FF_SIMSUN表示中文简体,对应的字体文件是simsun.ttc,虽然FF_CHINESE和FF_BIG5也表示中文但是它们对应的字体文件是不同的,所以不要弄错。

当然了,我这里只介绍了一种方法,还有一种就是修改源码,但不推荐。因为我觉得改动源码可能会给其它地方带来意想不到的麻烦。

使用JpGraph,要知道其版本、运行服务器以及操作系统的息息,不能张冠李戴,否则麻烦多多。

生成验证码require_once(‘jpgraph-4.0.2/src/jpgraph_antispam.php‘);

$spam = new AntiSpam();

$chars = $spam->Rand(4);

$spam->Stroke();

$spam->Set(‘my_string‘);//可以自行指定字符串

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值