首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PChart线性图表图像质量

PChart线性图表图像质量
EN

Stack Overflow用户
提问于 2016-09-27 21:00:09
回答 1查看 866关注 0票数 14

我正在使用PChart创建线性图表。除了实际绘制的线条的质量之外,一切都进行得很好。

当然,抗锯齿不会关闭,甚至不会显式打开。

这是一个实际图像的例子,所有这些步骤看起来都很丑陋。

有没有一种方法可以让绘制的线条更流畅,而不需要踏步?

使用的代码:

代码语言:javascript
复制
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]);
    $pChart->drawLineChart();
    $pChart->drawLegend(325,180,array("Style"=>LEGEND_BOX,"Mode"=>LEGEND_HORIZONTAL, "BoxWidth"=>30,"Family"=>LEGEND_FAMILY_LINE,"Alpha" => 0));

    $pChart->render($this->target_dir . $fileName);

    return $this->target_dirname . $fileName;
}
EN

回答 1

Stack Overflow用户

发布于 2016-10-18 19:21:25

如果删除setSerieWeight,则会产生更好的抗锯齿效果。例如。

代码语言:javascript
复制
<?php 

require_once "class/pDraw.class.php"; require_once "class/pImage.class.php"; require_once "class/pData.class.php";

$pData = new \pData();

$data = array(array(0,100),array(100,200),array(200,500)); 



    $i = 0;
    foreach ($data as $key => $row)
    {
        $serie = 'test';
        $pData->addPoints($row, $serie);
        $pData->setSerieOnAxis($serie, $i);

        $pData->setAxisName($i, $serie);
        $pData->setPalette($serie,  array("R"=>74,"G"=>42,"B"=>112,"Alpha"=>100));
        $pData->setAxisDisplay($i, AXIS_FORMAT_METRIC);
        $i++;
    }
    $monthNames = array_keys($row);



    $pChart = new \pImage(750, 200, $pData);

    $pChart->setFontProperties(array(
        "FontName" =>  "arial.ttf",
        "FontSize" => 8)
    );

    $pChart->setGraphArea(50, 10, 700, 150);
    $pChart->Antialias = TRUE;
    $pChart->drawScale(["Mode"  => SCALE_MODE_START0]);
    $pChart->drawLineChart();
    $pChart->drawLegend(325,180,array("Style"=>LEGEND_BOX,"Mode"=>LEGEND_HORIZONTAL, "BoxWidth"=>30,"Family"=>LEGEND_FAMILY_LINE,"Alpha" => 0));

    $pChart->render('test.png');

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39725365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档