pChart 图表中文显示有关问题

WBOY
发布: 2016-06-13 12:02:49
原创
1125 人浏览过

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

<br /> /* CAT:Bar Chart */<br /> header("content-type:text/html; charset=utf-8");<br /> /* pChart library inclusions */<br /> include("class/pData.class.php");<br /> include("class/pDraw.class.php");<br /> include("class/pImage.class.php");<br /><br /> /* Create and populate the pData object */<br /> $MyData = new pData();<br /> $MyData->addPoints(array(150,220,300,250,420,200,300,200,100),"test");<br /> $MyData->setAxisName(0,"Hits");<br /> $MyData->addPoints(array("1月","2月","3月","4月","5月","6月","7月","8月","9月"),"Months");<br /> $MyData->setSerieDescription("Months","Month");<br /> $MyData->setAbscissa("Months");<br /><br /> /* Create the pChart object */<br /> $myPicture = new pImage(700,230,$MyData);<br /><br /> /* Turn of Antialiasing */<br /> $myPicture->Antialias = FALSE;<br /><br /> /* Add a border to the picture */<br /> $myPicture->drawGradientArea(0,0,700,230,DIRECTION_VERTICAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>100));<br /> $myPicture->drawGradientArea(0,0,700,230,DIRECTION_HORIZONTAL,array("StartR"=>240,"StartG"=>240,"StartB"=>240,"EndR"=>180,"EndG"=>180,"EndB"=>180,"Alpha"=>20));<br /> $myPicture->drawRectangle(0,0,699,229,array("R"=>0,"G"=>0,"B"=>0));<br /><br /> /* Set the default font */<br /> $myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6));<br /><br /> /* Define the chart area */<br /> $myPicture->setGraphArea(60,40,650,200);<br /><br /> /* Draw the scale */<br /> $scaleSettings = array("GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE);<br /> $myPicture->drawScale($scaleSettings);<br /><br /> /* Write the chart legend */<br /> $myPicture->drawLegend(580,12,array("Style"=>LEGEND_NOBORDER,"Mode"=>LEGEND_HORIZONTAL));<br /><br /> /* Turn on shadow computing */ <br /> $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));<br /><br /> /* Draw the chart */<br /> $myPicture->setShadow(TRUE,array("X"=>1,"Y"=>1,"R"=>0,"G"=>0,"B"=>0,"Alpha"=>10));<br /> $settings = array("Surrounding"=>-30,"InnerSurrounding"=>30);<br /> $myPicture->drawBarChart($settings);<br /> ob_clean();  //关键代码,防止出现'图像因其本身有错无法显示'的问题。<br />Header("Content-type: image/PNG"); <br /> /* Render the picture (choose the best way) */<br /> $myPicture->autoOutput("examples/pictures/example.drawBarChart.simple.png");<br />
登录后复制

怎么把 $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的

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板