我正在使用PChart创建线性图表.除了绘制的实际线条的质量外,一切顺利.
当然,抗锯齿功能没有关闭,甚至没有明确打开.
这是一个实际图像的例子,看起来非常丑陋所有这些步骤.
有没有办法让线条更平滑,没有踩踏?
使用的代码:
public function linearTwoAxis($data, $fileName, $startColor = 0)
{
$pData = new \pData();
$i = 0;
foreach ($data as $key => $row)
{
$serie = $this->translator->trans("pages.reportDefault.$key");
$pData->addPoints($row, $serie);
$pData->setSerieOnAxis($serie, $i);
$pData->setSerieWeight($serie, 1);
$pData->setAxisName($i, $serie);
$pData->setPalette($serie, $this->colors[$startColor++]);
$pData->setAxisDisplay($i, AXIS_FORMAT_METRIC);
$i++;
}
$monthNames = array_keys($row);
$pData->setAxisPosition(1, AXIS_POSITION_RIGHT);
$pData->addPoints($monthNames, "Labels");
$pData->setAbscissa("Labels");
$pChart = new \pImage(750, 200, $pData);
$pChart->setFontProperties(array(
"FontName" => $this->fonts_dir . "arial.ttf",
"FontSize" => 8)
);
$pChart->setGraphArea(50, 10, 700, 150);
$pChart->Antialias = TRUE;
$pChart->drawScale(["Mode" => SCALE_MODE_START0]); …Run Code Online (Sandbox Code Playgroud) 我似乎无法弄清楚如何正确设置我的刻度间隔.
需要在X轴上按小时计时.
数据是基于分钟的.
使用Javascript:
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'spline'
},
title: {
text: 'Temperature Today'
},
xAxis: {
type: "datetime",
categories: time,
dateTimeLabelFormats: {
day: '%h'
},
minTickInterval: 24 * 36000000 * 1000,
},
yAxis: {
title: {
text: 'Temperature'
},
minorGridLineWidth: 0,
gridLineWidth: 0,
alternateGridColor: null
},
tooltip: {
formatter: function() {
return ''+
Highcharts.dateFormat('%e. %b %Y, %H:00', this.x) +': '+ this.y;
}
},
plotOptions: {
spline: …Run Code Online (Sandbox Code Playgroud) 我使用以下内容:
$chartImage->autoOutput('/statistics/'.$image.'.png');
Run Code Online (Sandbox Code Playgroud)
问题是此代码将图像输出到浏览器.如果它将图像保存到我指定的目录和名称的文件中,我更喜欢它.我该怎么做呢?我正在查看pChart wiki,它对所有这些pCache的东西非常困惑.我不需要任何缓存或类似的东西......我只是想保存图像.
有谁知道如何改变pChart中x轴标签的角度?我需要倾斜它们,这样可以在一个图表中显示更长的时间范围.
我有一个天气数据库,每70秒获取一次数据集(取决于气象站何时提供数据).
我想用Pchart绘图,但我的样本太多,所以X轴搞砸了.
所以我想要大约每5分钟一次的数据.(或每30分钟)
我目前的查询是这样的:
SELECT time, temp_out FROM wmr200 WHERE date(time) = curdate()
Run Code Online (Sandbox Code Playgroud)
这样可以获得过去24小时的样本,但有太多样本.
我希望我的y轴以8的间隔显示自动收报机.我已将我的比例模式设置为手动,最小值为0,最大值为48,但仍然默认为以5为间隔显示勾号.
我还没有看到设置或选项来定制它,有没有办法做到这一点?
/* Draw the scale */
$scaleSettings = array("Mode"=>SCALE_MODE_MANUAL,"ManualScale"=>array(0=>array("Min"=>1,"Max"=>56)));
$myPicture->drawScale($scaleSettings);
Run Code Online (Sandbox Code Playgroud)

我正在使用PChart for PHP绘制图形,它工作得很好.
我绘制了一个强度图(2 =强,1 =中,0 =低),我想知道是否有可能在Y轴上显示数据的描述(强,中,低)而不是不合适的数字(2,1,0).
(我搜索了很多没有成功,理论上你只能根据http://pchart.sourceforge.net/documentation.php?topic=faq.xlabels设置X标签.)
谢谢!
我正在尝试命名我的x轴(见图)。

如您所见,没有打印x轴名称。但是,由于以下这一行,我的代码应该打印一个:$MyData->setSerieDescription("Labels","Range of Data");,除非我误解了用法。
码:
/* 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($LT50,$GT50_LT100,$GT100_LT150,$GT150_LT200,$GT200_LT250,$GT250_LT300,$GT300_LT350,$GT350_LT400,$GT400_LT450,$GT450),"Probe 3");
$MyData->setSerieWeight("Probe 3",2);
$MyData->setAxisName(0,"Number of Occurrences");;
$MyData->addPoints(array("Diff < 50","50 > Diff < 100","100 > Diff < 150","150 > Diff < 200","200 > Diff < 250","250 > Diff < 300","300 > Diff < 350", "350 > Diff < 400", "400 > Diff < 450", "Diff > 450"),"Labels");
$MyData->setSerieDescription("Labels","Range of Data");
$MyData->setAbscissa("Labels");
/* Create …Run Code Online (Sandbox Code Playgroud)