在使用phplot绘图时,汉字标题会出现乱码。下面原本是phplot手册中的一个绘制sin和cos曲线的一个实例 。我修改后,经测试可以绘制汉字标题。我们可以通过该实例可以说明绘制汉字方法。
<?php
# PHPlot Example: Line graph, 2 lines
/*
该实例演示了如何解决php绘制汉字问题
要点:
1、指定字体文件所在的目录
2、将字符串转换为utf8格式
*/
require_once 'phplot.php';
# Generate data for:
# Y1 = sin(x)
# Y2 = cos(x)
//X轴宽
$end = M_PI * 2.0;
//X轴步长
$delta = $end / 20.0;
$data = array();
//创建数据
for ($x = 0; $x <= $end; $x += $delta)
$data[] = array('', $x, sin($x), cos($x));
$plot = new PHPlot(800, 600);
$plot->SetImageBorderType('plain');
//设置TrueType字体文件所在的目录
$plot->SetTTFPath("c://windows//fonts");
//设置TrueType字体文件
$plot->SetDefaultTTFont('simhei.ttf');
$plot->SetPlotType('lines');
$plot->SetDataType('data-data');
$plot->SetDataValues($data);
# Main plot title:
//$plot->SetTitle('Line Plot, Sin and Cos');
$titleout = iconv("gb2312", "UTF-8", "画曲线, Sin and Cos");
$plot->SetTitle($titleout);
# Make a legend(图例) for the 2 functions:
$plot->SetLegend(array('sin(t)', 'cos(t)'));
# Select a plot area and force ticks to nice values:
# 选择绘制区域,强制标记适合的值
$plot->SetPlotAreaWorld(0, -1, 6.8, 1);
# Even though the data labels are empty, with numeric formatting they
# will be output as zeros unless we turn them off:
#虽然数据标示为空,除非关闭它。否则将使用数字格式输出0;
$plot->SetXDataLabelPos('none');
#设定X轴标签增量
$plot->SetXTickIncrement(M_PI / 8.0);
#设置x轴标签类型
$plot->SetXLabelType('data');
#设置精确度
$plot->SetPrecisionX(3);
#设定Y轴增量
$plot->SetYTickIncrement(0.2);
#设置Y轴标签类型
$plot->SetYLabelType('data');
#设置Y轴精度
$plot->SetPrecisionY(1);
# Draw both grids:
$plot->SetDrawXGrid(True);
$plot->SetDrawYGrid(True);
$plot->DrawGraph();
?>