Heim  >  Artikel  >  Backend-Entwicklung  >  pChart 图表中文显示有关问题

pChart 图表中文显示有关问题

WBOY
WBOYOriginal
2016-06-13 12:02:491124Durchsuche

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的

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn