当前位置:Gxlcms > PHP教程 > pChart图表中文显示有关问题

pChart图表中文显示有关问题

时间:2021-07-01 10:21:17 帮助过:6人阅读

pChart 图表中文显示问题
项目需要,图表显示数据,个人能力有限,

/* CAT:Bar Chart */
header("content-type:text/html; charset=utf-8");
/* pChart library inclusions */
include("class/pData.class.php");
include("class/pDraw.class.php");
include("class/pImage.class.php");

/* Create and populate the pData object */
$MyData = new pData();
$MyData->addPoints(array(150,220,300,250,420,200,300,200,100),"test");
$MyData->setAxisName(0,"Hits");
$MyData->addPoints(array("1月","2月","3月","4月","5月","6月","7月","8月","9月"),"Months");
$MyData->setSerieDescription("Months","Month");
$MyData->setAbscissa("Months");

/* Create the pChart object */
$myPicture = new pImage(700,230,$MyData);

/* Turn of Antialiasing */
$myPicture->Antialias = FALSE;

/* Add a border to the picture */
$myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100));
$myPicture->drawGradientArea(0,0,700,230,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20));
$myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));

/* Set the default font */
$myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6));

/* Define the chart area */
$myPicture->setGraphArea(60,40,650,200);

/* Draw the scale */
$scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE);
$myPicture->drawScale($scaleSettings);

/* Write the chart legend */
$myPicture->drawLegend(580,12,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));

/* Turn on shadow computing */
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));

/* Draw the chart */
$myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));
$settings = array("Surrounding"=>-30,"InnerSurrounding"=>30);
$myPicture->drawBarChart($settings);
ob_clean(); //关键代码,防止出现'图像因其本身有错无法显示'的问题。
Header("Content-type: image/PNG");
/* Render the picture (choose the best way) */
$myPicture->autoOutput("examples/pictures/example.drawBarChart.simple.png");

怎么把 $MyData->addPoints(array(150,220,300,250,420,200,300,200,100),"test");的字符串test显示为中文,怎么把 $MyData->setAxisName(0,"Hits");显示中文,比如 $MyData->setAxisName(0,"套");。。
------解决方案--------------------
直接中文写上去不行吗?
------解决方案--------------------
注释掉 header("content-type:text/html; charset=utf-8");
------解决方案--------------------
是最新版的吗?
待会下一个看看
------解决方案--------------------
1、header 是不要的,因为你是以图片方式输出
2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体
3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的

人气教程排行