理想情况下,我想设置切片边界,但不是圆周边界。
我试过这个:
$p1 = new PiePlotC($data);
$p1->ShowBorder(true);
$p1->SetColor('blue');
我也试过$p1->ShowBorder(false, true);
未显示边框。
我注意到了主题:UniversalTheme将边框设置为false。
我把那些台词从主题中删掉了。
case 'PiePlot':
{
//$plot->SetCenter(0.5, 0.45);
//$plot->ShowBorder(false);
//$plot->SetSliceColors($this->GetThemeColors());
break;
}
这没有帮助。
饼图切片颜色确实出现了,即使我记住了该行。
我知道这个主题是一个使用,因为我不得不记住:$plot->SetCenter(0.5, 0.45);
输出,以便能够移动饼图。
这招奏效了。
我认为让主题覆盖客户端(用户)的设置是一个糟糕的设计。用户的设置应该覆盖主题。
- 如何为PiePlotC中的每个切片设置边界?
另外,如何设置边框的大小(线宽)?**
<?php
require_once($_SERVER['DOCUMENT_ROOT'] . '/Business/Config.php');
require_once (BASE_PATH . '/PHPJpGraph/jpgraph.php');
require_once (BASE_PATH . '/PHPJpGraph/jpgraph_pie.php');
$data = array(50,28,25,27,31,20);
// A new pie graph
$graph = new PieGraph(1000,1000,'auto');
$graph->SetFrame(false);
$graph->title->Set("PiePlotC");
$graph->title->SetFont(FF_ARIAL,FS_BOLD,18);
$graph->title->SetMargin(8); // Add a little bit more margin from the top
$p1 = new PiePlotC($data);
//$p1->clearTheme();
$p1->ShowBorder(true);
$p1->SetColor('blue');
//$p1->SetBorder($aWeight, $aColor);
$p1->SetLabelType(PIE_VALUE_ABS);
$p1->value->SetFormat("%d");
$p1->SetSize(0.35);
$p1->SetCenter(0.5, 0.5);
$p1->value->SetFont(FF_ARIAL,FS_BOLD,12);
$p1->value->Show();
$p1->SetMidSize(0.75);
$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
$p1->midtitle->SetFont(FF_ARIAL,FS_NORMAL,12);
$p1->SetMidColor('white');
$p1->SetLabelType(PIE_VALUE_ABS);
$lbl = array("adam\n%.1f","bertil\n%.1f","johan\n%.1f",
"peter\n%.1f","daniel\n%.1f","erik\n%.1f%%");
$p1->SetLabels($lbl);
$graph->Add($p1);
$graph->Stroke();
1条答案
按热度按时间6vl6ewon1#
在新的PieGraph之后,使用
$graph->clearTheme();
清除默认主题,看看是否有帮助。我在示例或文档中没有发现任何指示饼图切片的边框和大小可以更改的内容。您可能想看看使用ExplodeAll
$p1->ExplodeAll(5);
是否会有所帮助。还有一些选项可以分解一个或多个切片,但不是全部切片。此外,还提供了几个主题以及自行设置每个切片颜色的选项。