2014-08-01 2 views
0

Я пытаюсь назвать свою ось x (см. Рисунок).Как вы помечаете ось x в pChart

Image without name on x-axis when my code sould print one.

Как вы можете видеть, не имя оси й не печатается. Тем не менее, мой код должен печатать один из-за этой строки: $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 the pChart object */ 
$myPicture = new pImage(1500,690,$MyData); 

/* Turn of Antialiasing */ 
$myPicture->Antialias = FALSE; 

/* Add a border to the picture */ 
$myPicture->drawRectangle(0,0,1440,675,array("R"=>0,"G"=>0,"B"=>0)); 

/* Write the chart title */ 
$myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>20)); 
$myPicture->drawText(250,35,"Time Diff Between TRWire Job Created and Crew Dispatched",array("FontSize"=>15,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); 

/* Set the default font */ 
$myPicture->setFontProperties(array("FontName"=>"../fonts/pf_arma_five.ttf","FontSize"=>10)); 

/* Define the chart area */ 
$myPicture->setGraphArea(60,40,1400,600); 

/* Draw the scale */ 
$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>$max)); 
$scaleSettings = array("Mode"=>SCALE_MODE_MANUAL, "LabelRotation"=>30, "ManualScale"=>$AxisBoundaries, "XMargin"=>10,"YMargin"=>10,"Floating"=>TRUE,"GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE); 
$myPicture->drawScale($scaleSettings); 

/* Turn on Antialiasing */ 
$myPicture->Antialias = TRUE; 

/* Draw the line chart */ 
$myPicture->drawLineChart(); 

/* Render the picture (choose the best way) */ 
$myPicture->autoOutput("./pChart/examples/pictures/example.drawLineChart.simple.png"); 

ответ

0

Для тех, кто в будущем:

я не мог выяснить, почему мой pChart делает это. После переустановки ничего не изменилось. Итак, чтобы создать имя оси смещения, я создал легенду и поместил ее в нижнюю часть моей диаграммы. Он работает как довольно эффективное имя оси, хотя было бы неплохо заставить его работать полностью.

Final Код:

/* 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($LT30,$GT60,$GT90,$GT120,$GT150,$GT180,$GT210,$GT240,$GT270,$GT300,$GT330,$GT360,$GT390,$GT420,$GT450,$GT480,$GT510,$GT540,$GT570,$GT600),"Time Range (minutes)"); 
$MyData->setSerieWeight("Time Range (minutes)",2); 
$MyData->setAxisName(0,"Number of Occurrences"); 
$MyData->addPoints(array("< 30","30-60","60-90","90-120","120-150","150-180","180-210","210-240","240-270","270-300","300-330","330-360","360-390","390-420","420-450","450-480","510-540","540-570","570-600","> 600"),"Labels"); 
$MyData->setSerieDescription("Labels","Months"); 
$MyData->setAbscissa("Labels"); 
$MyData->SetXAxisName(1,"Range of Data"); 


/* Create the pChart object */ 
$myPicture = new pImage(1500,690,$MyData); 

/* Turn of Antialiasing */ 
$myPicture->Antialias = FALSE; 

/* Add a border to the picture */ 
$myPicture->drawRectangle(0,0,1440,675,array("R"=>0,"G"=>0,"B"=>0)); 

/* Write the chart title */ 
$myPicture->setFontProperties(array("FontName"=>"../fonts/Forgotte.ttf","FontSize"=>20)); 
$myPicture->drawText(250,35,"Time Difference Between TRWire Job Created and Crew Dispatched in 2014",array("FontSize"=>15,"Align"=>TEXT_ALIGN_BOTTOMMIDDLE)); 

/* Set the default font */ 
$myPicture->setFontProperties(array("FontName"=>"../fonts/verdana.ttf","FontSize"=>10,)); 

/* Define the chart area */ 
$myPicture->setGraphArea(60,40,1400,600); 

/* Draw the scale */ 
$AxisBoundaries = array(0=>array("Min"=>0,"Max"=>$max)); 
$scaleSettings = array("Mode"=>SCALE_MODE_MANUAL, "LabelRotation"=>30, "ManualScale"=>$AxisBoundaries, "XMargin"=>10,"YMargin"=>10,"Floating"=>TRUE,"GridR"=>200,"GridG"=>200,"GridB"=>200,"DrawSubTicks"=>TRUE,"CycleBackground"=>TRUE); 
$myPicture->drawScale($scaleSettings); 

/* Turn on Antialiasing */ 
$myPicture->Antialias = TRUE; 

/* Draw the line chart */ 
$myPicture->drawLineChart(); 
$myPicture->drawPlotChart(array("DisplayValues"=>TRUE,"PlotBorder"=>TRUE,"BorderSize"=>2,"Surrounding"=>-60,"BorderAlpha"=>80)); 

$myPicture->drawLegend(600,650,array("Style"=>LEGEND_BORDER,"Mode"=>LEGEND_HORIZONTAL)); 

/* Render the picture (choose the best way) */ 
$myPicture->autoOutput("./pChart/examples/pictures/example.drawLineChart.simple.png"); 
0

Райан,

Я посмотрел на документацию для этой библиотеки на Source Forge. Кажется, вы должны использовать метод SetXAxisName для обозначения оси X и SetYAxisName для обозначения оси Y. Не знаете, почему SetAxisName правильно маркирует ось Y (может быть, устаревшая версия?), Но я бы ее изменил.

SetSerieName используется для обозначения серии данных, чтобы оно отображалось в легенде при вызове drawLegend.

Надеюсь, это поможет.

+0

Я согласен с тем, что документация показывает это. Однако, добавив это, он все еще не показывает метку для оси. Я начинаю думать, что файлы либо повреждены, либо неправильно загружены. –

4

Эта проблема прослушивается дерьмо из меня. Я поздно опоздал на диагностику, только чтобы мой график появился.

Связано с отсутствующим заголовком X-Axis, я наконец нашел grepping через исходную директорию, которая использовала для меня $myData->setAbscissaName("Time of Reading");. Это было волшебным.

У них плохая документация. Я даже скопировал и наклеил свои примеры сценариев, которые имели обозначенную ось x (которая никогда не работала как скопированная и вставленная), и у них тоже не было названия. ОЧЕНЬ ФРУСТА.

0

Вы также можете сделать внешнюю коробку более крупной и использовать drawText(), что дает вам немного больше контроля и проще реализовать.

$myPicture->drawText(450, 55, "Width in Pixels", array("FontSize" => 15, "Align" => TEXT_ALIGN_BOTTOMMIDDLE)); 
Смежные вопросы