pChart 图表中文显示问题 pChart 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 注释掉 header("content-type:text/html; charset=utf-8"); 1、header 是不要的,因为你是以图片方式输出2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的 你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体,就是我这个选错啦?$myPicture->setFontProperties(array("FontName"=>"fonts/pf_arma_five.ttf","FontSize"=>6));我改改去。。 假定你的服务器是 windows 系统,且程序是 gbk 编码的function bm($ar) { if(! is_array($ar)) return iconv('gbk', 'utf-8', $ar); foreach($ar as &$v) $v = iconv('gbk', 'utf-8', $v); return $ar;} /* CAT:Bar Chart */ /* pChart library inclusions */ include("Plugin/pChart2.1.4/class/pData.class.php"); include("Plugin/pChart2.1.4/class/pDraw.class.php"); include("Plugin/pChart2.1.4/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), bm("测试")); $MyData->setAxisName(0, bm("套")); $MyData->addPoints(bm(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"=>"c:/windows/fonts/simhei.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"); 输出图表 我还是推荐到JS 那去处理...图表效果 比php的丰富多了. php新手请教:关于php远程读取xml的问题 菜鸟的一个css的问题 !!!???在线编辑器FckEdit如何无刷新读取文本框内容???!!! 请问关于csdn 的问题 请问php程序的最佳运行环境 怎样在php中执行python script? php curl模拟答题,总是400错误 我想用PHP画曲线图,扁图之类的图,请问用什么工具??高分 各位大侠,帮帮忙! apache无法加载php文件 求一个正则表达式 php中的无法调用exec运行视频转化 。
2、你选用的字体是西文字体,没有汉字当然不能显示,你需要选一款中文字体
3、如果你的程序不是utf-8的,那么所有要输出的汉字都必须转成utf-8的
if(! is_array($ar)) return iconv('gbk', 'utf-8', $ar);
foreach($ar as &$v) $v = iconv('gbk', 'utf-8', $v);
return $ar;
} /* CAT:Bar Chart */
/* pChart library inclusions */
include("Plugin/pChart2.1.4/class/pData.class.php");
include("Plugin/pChart2.1.4/class/pDraw.class.php");
include("Plugin/pChart2.1.4/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), bm("测试"));
$MyData->setAxisName(0, bm("套"));
$MyData->addPoints(bm(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"=>"c:/windows/fonts/simhei.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");