本文整理汇总了PHP中pChart::getLegendBoxSize方法的典型用法代码示例。如果您正苦于以下问题:PHP pChart::getLegendBoxSize方法的具体用法?PHP pChart::getLegendBoxSize怎么用?PHP pChart::getLegendBoxSize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pChart
的用法示例。
在下文中一共展示了pChart::getLegendBoxSize方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: make
//.........这里部分代码省略.........
foreach ($columns as $column) {
$name = $this->plot->column($column + 1);
$style = $this->plot->line_style($name, 'style');
$line_color = $this->plot->line_style($name, 'color');
if (!$line_color) {
$colors[$name] = array('R' => 0, 'G' => 0, 'B' => 0);
} else {
$colors[$name] = html_color_to_RGB($line_color);
}
$plot->setColorPalette($line_no, $colors[$name]['R'], $colors[$name]['G'], $colors[$name]['B']);
if (!$style || $style == 'line' || $style == 'both') {
$line_width = $this->plot->line_style($name, 'width');
if (!$line_width) {
$line_width = 1;
}
$dot_size = $this->plot->line_style($name, 'dot-size');
if (!$dot_size) {
$dot_size = 0;
}
$plot->setLineStyle($line_width, $dot_size);
$plot->drawXYGraph($data->GetData(), $data->GetDataDescription(), 'Serie' . $column, 'Serie' . $x_column, $line_no);
}
if ($style == 'point' || $style == 'both') {
$radius = $this->plot->line_style($name, 'radius');
if (!$radius) {
$radius = 5;
}
$plot->drawXYPlotGraph($data->GetData(), $data->GetDataDescription(), 'Serie' . $column, 'Serie' . $x_column, $line_no, $radius, $radius - 2);
}
$line_no++;
}
$title = $this->plot->property('title');
foreach ($columns as $column) {
$data->removeSerie('Serie' . $column);
}
$in_legend = array();
$description = $data->GetDataDescription();
$description['Description'] = array();
$palette_id = 0;
foreach ($columns as $column) {
$name = $this->plot->column($column + 1);
if (in_array($name, $in_legend)) {
continue;
}
$in_legend[] = $name;
$description['Description']['Serie' . $column] = $name;
$plot->setColorPalette($palette_id, $colors[$name]['R'], $colors[$name]['G'], $colors[$name]['B']);
++$palette_id;
}
$legend_box_size = $plot->getLegendBoxSize($description);
$legend_position = $this->plot->property('legend-position');
if (!$legend_position) {
$legend_position = 'top-left';
}
switch ($legend_position) {
case 'top-left':
$legend_left = 0;
$legend_top = 0;
break;
case 'top':
$legend_left = ($width - $h - $left_margin - $legend_box_size[0]) / 2;
$legend_top = 0;
break;
case 'top-right':
$legend_left = $width - $left_margin - $h - $legend_box_size[0];
$legend_top = 0;
break;
case 'left':
$legend_left = 0;
$legend_top = ($height - 4 * $h - $legend_box_size[1]) / 2;
break;
case 'center':
$legend_left = ($width - $h - $left_margin - $legend_box_size[0]) / 2;
$legend_top = ($height - 4 * $h - $legend_box_size[1]) / 2;
break;
case 'right':
$legend_left = $width - $left_margin - $h - $legend_box_size[0];
$legend_top = ($height - 4 * $h - $legend_box_size[1]) / 2;
break;
case 'bottom-left':
$legend_left = 0;
$legend_top = $height - 4 * $h - $legend_box_size[1];
break;
case 'bottom':
$legend_left = ($width - $h - $left_margin - $legend_box_size[0]) / 2;
$legend_top = $height - 4 * $h - $legend_box_size[1];
break;
case 'bottom-right':
$legend_left = $width - $left_margin - $h - $legend_box_size[0];
$legend_top = $height - 4 * $h - $legend_box_size[1];
break;
}
$plot->drawLegend($left_margin + $legend_left, 2 * $h + $legend_top, $description, 255, 255, 255, 100, 100, 100, 0, 0, 0, true);
$plot->drawTitle($h, 0, $title, 0, 0, 0, $width - $h, $h * 2, 100);
$plot->Render($this->path($working_path));
$file_name = $this->plot->name();
$plot_name = $this->name();
$this->log($working_path, "Successfully plotted {$file_name} as {$plot_name}\ntitle: {$title}\n");
return 0;
}
示例2: testLineChart
/**
* Test generating a chart based on Example1.php in the examples
* directory, compare the trace of requests sent to the test
* canvas against a known good value
*/
public function testLineChart()
{
$canvas = new TestCanvas();
$DataSet = new pData();
CSVImporter::importFromCSV($DataSet, dirname(__FILE__) . "/../sample/bulkdata.csv", ",", array(1, 2, 3), FALSE, 0);
$DataSet->addAllSeries();
$DataSet->setAbscissaLabelSeries();
$DataSet->setSeriesName("January", "Serie1");
$DataSet->setSeriesName("February", "Serie2");
$DataSet->setSeriesName("March", "Serie3");
$DataSet->getDataDescription()->setYAxisName("Average age");
$DataSet->getDataDescription()->setYUnit("µs");
// Initialise the graph
$Test = new pChart(700, 230, $canvas);
$Test->setFontProperties("Fonts/tahoma.ttf", 8);
$Test->setGraphArea(70, 30, 680, 200);
$canvas->drawFilledRoundedRectangle(new Point(7, 7), new Point(693, 223), 5, new Color(240), 1, 0, ShadowProperties::NoShadow());
$canvas->drawRoundedRectangle(new Point(5, 5), new Point(695, 225), 5, new Color(230), 1, 0, ShadowProperties::NoShadow());
$backgroundStyle = new BackgroundStyle(new Color(255), TRUE);
$Test->drawGraphBackground($backgroundStyle);
$Test->drawScale($DataSet, ScaleStyle::DefaultStyle(), 0, 2);
$Test->drawGrid(new GridStyle(4, TRUE, new Color(230), 50));
// Draw the 0 line
$Test->setFontProperties("Fonts/tahoma.ttf", 6);
$Test->drawTreshold(0, new Color(143, 55, 72), TRUE, TRUE);
// Draw the line graph
$Test->drawLineGraph($DataSet->GetData(), $DataSet->GetDataDescription());
$Test->drawPlotGraph($DataSet->GetData(), $DataSet->GetDataDescription(), 3, 2, new Color(255));
// Finish the graph
$Test->setFontProperties("Fonts/tahoma.ttf", 8);
$Test->drawLegend(75, 35, $DataSet->GetDataDescription(), new Color(255));
$this->assertEquals(array(73, 51), $Test->getLegendBoxSize($DataSet->getDataDescription()));
$Test->setFontProperties("Fonts/tahoma.ttf", 10);
$Test->drawTitle(60, 22, "example 1", new Color(50), 585);
file_put_contents(dirname(__FILE__) . '/action_logs/testLineChart', $canvas->getActionLog());
$this->assertEquals('589d8e78ac5d19581198a42b75c1c637', md5($canvas->getActionLog()));
}
示例3: generate_statistics
//.........这里部分代码省略.........
if ($qtype == "M" || $qtype == "P")
{
//new bar chart using data from array $grawdata which contains percentage
$DataSet = new pData;
$counter=0;
$maxyvalue=0;
foreach ($grawdata as $datapoint)
{
$DataSet->AddPoint(array($datapoint),"Serie$counter");
$DataSet->AddSerie("Serie$counter");
$counter++;
if ($datapoint>$maxyvalue) $maxyvalue=$datapoint;
}
if ($maxyvalue<10) {++$maxyvalue;}
$counter=0;
foreach ($lbl as $label)
{
$DataSet->SetSerieName($label,"Serie$counter");
$counter++;
}
if ($MyCache->IsInCache("graph".$surveyid,$DataSet->GetData()))
{
$cachefilename=basename($MyCache->GetFileFromCache("graph".$surveyid,$DataSet->GetData()));
}
else
{
$graph = new pChart(1,1);
$graph->setFontProperties($rootdir."/fonts/".$chartfontfile, $chartfontsize);
$legendsize=$graph->getLegendBoxSize($DataSet->GetDataDescription());
if ($legendsize[1]<320) $gheight=420; else $gheight=$legendsize[1]+100;
$graph = new pChart(690+$legendsize[0],$gheight);
$graph->loadColorPalette($homedir.'/styles/'.$admintheme.'/limesurvey.pal');
$graph->setFontProperties($rootdir."/fonts/".$chartfontfile,$chartfontsize);
$graph->setGraphArea(50,30,500,$gheight-60);
$graph->drawFilledRoundedRectangle(7,7,523+$legendsize[0],$gheight-7,5,254,255,254);
$graph->drawRoundedRectangle(5,5,525+$legendsize[0],$gheight-5,5,230,230,230);
$graph->drawGraphArea(255,255,255,TRUE);
$graph->drawScale($DataSet->GetData(),$DataSet->GetDataDescription(),SCALE_START0,150,150,150,TRUE,90,0,TRUE,5,false);
$graph->drawGrid(4,TRUE,230,230,230,50);
// Draw the 0 line
$graph->setFontProperties($rootdir."/fonts/".$chartfontfile,$chartfontsize);
$graph->drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the bar graph
$graph->drawBarGraph($DataSet->GetData(),$DataSet->GetDataDescription(),FALSE);
//$Test->setLabel($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie4","1","Important point!");
// Finish the graph
$graph->setFontProperties($rootdir."/fonts/".$chartfontfile, $chartfontsize);
$graph->drawLegend(510,30,$DataSet->GetDataDescription(),255,255,255);
$MyCache->WriteToCache("graph".$surveyid,$DataSet->GetData(),$graph);
$cachefilename=basename($MyCache->GetFileFromCache("graph".$surveyid,$DataSet->GetData()));
unset($graph);
}
} //end if (bar chart)
//Pie Chart
else
{
// this block is to remove the items with value == 0
示例4: createChart
//.........这里部分代码省略.........
if ($language == 'ar') {
if (!class_exists('I18N_Arabic_Glyphs', false)) {
$Arabic = new I18N_Arabic('Glyphs');
} else {
$Arabic = new I18N_Arabic_Glyphs();
}
foreach ($lbl as $kkey => $kval) {
if (preg_match("^[A-Za-z]^", $kkey)) {
//auto detect if english
$lblout[] = $kkey . ' (' . $kval . ')';
} else {
$lblout[] = $Arabic->utf8Glyphs($kkey . ' )' . $kval . '(');
}
}
} elseif (getLanguageRTL($language)) {
foreach ($lbl as $kkey => $kval) {
$lblout[] = UTF8Strrev($kkey . ' )' . $kval . '(');
}
} else {
foreach ($lbl as $kkey => $kval) {
$lblout[] = $kkey . ' (' . $kval . ')';
}
}
$counter = 0;
foreach ($lblout as $sLabelName) {
$DataSet->SetSerieName(html_entity_decode($sLabelName, null, 'UTF-8'), "Serie{$counter}");
$counter++;
}
if ($cache->IsInCache("graph" . $iSurveyID . $language . $iQuestionID, $DataSet->GetData()) && Yii::app()->getConfig('debug') < 2) {
$cachefilename = basename($cache->GetFileFromCache("graph" . $iSurveyID . $language . $iQuestionID, $DataSet->GetData()));
} else {
$graph = new pChart(1, 1);
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$legendsize = $graph->getLegendBoxSize($DataSet->GetDataDescription());
if ($legendsize[1] < 320) {
$gheight = 420;
} else {
$gheight = $legendsize[1] + 100;
}
$graph = new pChart(690 + $legendsize[0], $gheight);
$graph->drawFilledRectangle(0, 0, 690 + $legendsize[0], $gheight, 254, 254, 254, false);
$graph->loadColorPalette($homedir . DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR . $admintheme . DIRECTORY_SEPARATOR . 'limesurvey.pal');
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$graph->setGraphArea(50, 30, 500, $gheight - 60);
$graph->drawFilledRoundedRectangle(7, 7, 523 + $legendsize[0], $gheight - 7, 5, 254, 255, 254);
$graph->drawRoundedRectangle(5, 5, 525 + $legendsize[0], $gheight - 5, 5, 230, 230, 230);
$graph->drawGraphArea(254, 254, 254, TRUE);
$graph->drawScale($DataSet->GetData(), $DataSet->GetDataDescription(), SCALE_START0, 150, 150, 150, TRUE, 90, 0, TRUE, 5, false);
$graph->drawGrid(4, TRUE, 230, 230, 230, 50);
// Draw the 0 line
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$graph->drawTreshold(0, 143, 55, 72, TRUE, TRUE);
// Draw the bar graph
$graph->drawBarGraph($DataSet->GetData(), $DataSet->GetDataDescription(), FALSE);
//$Test->setLabel($DataSet->GetData(),$DataSet->GetDataDescription(),"Serie4","1","Important point!");
// Finish the graph
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$graph->drawLegend(510, 30, $DataSet->GetDataDescription(), 250, 250, 250);
$cache->WriteToCache("graph" . $iSurveyID . $language . $iQuestionID, $DataSet->GetData(), $graph);
$cachefilename = basename($cache->GetFileFromCache("graph" . $iSurveyID . $language . $iQuestionID, $DataSet->GetData()));
unset($graph);
}
} else {
// this block is to remove the items with value == 0
// and an inelegant way to remove comments from List with Comments questions
$i = 0;
示例5: createChart
/**
*
* Generate a chart for a question
* @param int $iQuestionID ID of the question
* @param int $iSurveyID ID of the survey
* @param mixed $type Type of the chart to be created - null produces bar chart, any other value produces pie chart
* @param array $lbl An array containing the labels for the chart items
* @param mixed $gdata An array containing the percentages for the chart items
* @param mixed $grawdata An array containing the raw count for the chart items
* @param mixed $cache An object containing [Hashkey] and [CacheFolder]
* @return Name
*/
function createChart($iQuestionID, $iSurveyID, $type = null, $lbl, $gdata, $grawdata, $cache, $oLanguage)
{
/* This is a lazy solution to bug #6389. A better solution would be to find out how
the "T" gets passed to this function from the statistics.js file in the first place! */
if (substr($iSurveyID, 0, 1) == "T") {
$iSurveyID = substr($iSurveyID, 1);
}
$rootdir = Yii::app()->getConfig("rootdir");
$homedir = Yii::app()->getConfig("homedir");
$homeurl = Yii::app()->getConfig("homeurl");
$admintheme = Yii::app()->getConfig("admintheme");
$scriptname = Yii::app()->getConfig("scriptname");
$chartfontfile = Yii::app()->getConfig("chartfontfile");
$chartfontsize = Yii::app()->getConfig("chartfontsize");
$language = Survey::model()->findByPk($iSurveyID)->language;
$statlang = $oLanguage;
$cachefilename = "";
/* Set the fonts for the chart */
if ($chartfontfile == 'auto') {
$chartfontfile = 'vera.ttf';
if ($language == 'ar') {
$chartfontfile = 'KacstOffice.ttf';
} elseif ($language == 'fa') {
$chartfontfile = 'KacstFarsi.ttf';
} elseif ($language == 'el') {
$chartfontfile = 'DejaVuLGCSans.ttf';
} elseif ($language == 'zh-Hant-HK' || $language == 'zh-Hant-TW' || $language == 'zh-Hans') {
$chartfontfile = 'fireflysung.ttf';
}
}
if (array_sum($gdata) > 0) {
$graph = "";
$p1 = "";
$i = 0;
foreach ($gdata as $data) {
if ($data != 0) {
$i++;
}
}
/* Totatllines is the number of entries to show in the key and we need to reduce the font
and increase the size of the chart if there are lots of them (ie more than 15) */
$totallines = $i;
if ($totallines > 15) {
$gheight = 320 + 6.7 * ($totallines - 15);
$fontsize = 7;
$legendtop = 0.01;
$setcentrey = 0.5 / ($gheight / 320);
} else {
$gheight = 320;
$fontsize = 8;
$legendtop = 0.07000000000000001;
$setcentrey = 0.5;
}
if (!$type) {
$DataSet = new pData();
$counter = 0;
$maxyvalue = 0;
foreach ($grawdata as $datapoint) {
$DataSet->AddPoint(array($datapoint), "Serie{$counter}");
$DataSet->AddSerie("Serie{$counter}");
$counter++;
if ($datapoint > $maxyvalue) {
$maxyvalue = $datapoint;
}
}
if ($maxyvalue < 10) {
++$maxyvalue;
}
$counter = 0;
foreach ($lbl as $label) {
$DataSet->SetSerieName($label, "Serie{$counter}");
$counter++;
}
if ($cache->IsInCache("graph" . $language . $iSurveyID, $DataSet->GetData())) {
$cachefilename = basename($cache->GetFileFromCache("graph" . $language . $iSurveyID, $DataSet->GetData()));
} else {
$graph = new pChart(1, 1);
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$legendsize = $graph->getLegendBoxSize($DataSet->GetDataDescription());
if ($legendsize[1] < 320) {
$gheight = 420;
} else {
$gheight = $legendsize[1] + 100;
}
$graph = new pChart(690 + $legendsize[0], $gheight);
$graph->loadColorPalette($homedir . DIRECTORY_SEPARATOR . 'styles' . DIRECTORY_SEPARATOR . $admintheme . DIRECTORY_SEPARATOR . 'limesurvey.pal');
$graph->setFontProperties($rootdir . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . $chartfontfile, $chartfontsize);
$graph->setGraphArea(50, 30, 500, $gheight - 60);
//.........这里部分代码省略.........