2013-06-28 3 views
1

Я использую HTML5-конструктор Embarcadero (php) и TeeChart для рисования графиков. Прекрасно работает для большинства деталей. Документация TeeChart для php, однако, довольно скудная, чтобы сказать по крайней мере - много проб и ошибок. Я не могу найти способ установить толщину пера для линейного графика. Ничего в Google. Кто-нибудь, кто знает?Изменение ширины пера в teechart для php

Кроме того, если один использует СТОЛБЧАТОМ, можно было бы подумать следующий фрагмент кода следует отключить аннотирования знаки над каждой строке:

$series1=$this->Chart2->addSeries(new TeeBar($this)); 
$series1->Marks->Visible = false; 

Это не делает. Marks->Visible ничего не делает. Значения по умолчанию все еще отображаются.

ответ

1

Если вы используете TeeChart for PHP в HTML5 Builder XE3:

I can't find a way to set the pen thickness for a line graph. Nothing on Google. Anyone out there who knows?

Если взять функции демо входит в комплект установки в качестве ссылки, вы найдете пример Line2D в нем. После создания диаграммы:

$chart = new TChart(500,300); 

серии Line добавляются и заселена:

$line1=new Line($chart->getChart()); 
$data = Array(10,50,25,175,125,200,175); 
$line1->addArray($data); 

$line2=new Line($chart->getChart()); 
$line2->addXY(0,10); 
$line2->addXY(1,15); 
$line2->addXY(2,20); 
$line2->addXY(3,25);          
$line2->addXY(10,30); 

$line3=new Line($chart->getChart()); 
$data = Array(200,175,175,100,65,110,90); 
$line3->addArray($data); 

Затем, чтобы сделать их шире, вы можете просто:

$line1->getLinePen()->setWidth(2); 
$line2->getLinePen()->setWidth(2); 
$line3->getLinePen()->setWidth(2); 

Или вы могли бы использовать foreach loop уже присутствует:

foreach ($chart->getSeries() as $serie) { 
    //... 

    $serie->getLinePen()->setWidth(2); 
} 

Also, if one uses a Bar graph, one would think following code snippet should disable the annotating marks over each bar:

$series1=$this->Chart2->addSeries(new TeeBar($this)); 
$series1->Marks->Visible = false; 

Tt doesn't. Marks->Visible doesn't do anything. The default marks are still displayed.

Взгляните на пример серии баров. Он начинается следующим образом:

$chart1 = new TChart(500,300); 

$chart1->getChart()->getHeader()->setText("Bar Style"); 
$chart1->getChart()->getAspect()->setChart3DPercent(30); 

$bar=new Bar($chart1->getChart()); 
$chart1->getChart()->getSeries(0)->setColorEach(true); 
$chart1->getChart()->getSeries(0)->fillSampleValues(10); 

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

$chart1->getChart()->getSeries(0)->getMarks()->setVisible(false); 

То же самое можно было бы сделать так же, как это:

$bar->getMarks()->setVisible(false); 

Если вы используете TeeChart HTML5/JavaScript в HTML5 Builder XE3:

I can't find a way to set the pen thickness for a line graph. Nothing on Google. Anyone out there who knows?

вы с сделать это через format.stroke.size собственности, а именно:

var Chart1; 

function draw() { 
    Chart1=new Tee.Chart("canvas1"); 

    line1=Chart1.addSeries(new Tee.Line()); 
    line1.addRandom(25); 
    line1.format.stroke.size=2; 

    line2=Chart1.addSeries(new Tee.Line()); 
    line2.addRandom(25); 

    Chart1.draw(); 
} 

Also, if one uses a Bar graph, one would think following code snippet should disable the annotating marks over each bar:

$series1=$this->Chart2->addSeries(new TeeBar($this)); 
$series1->Marks->Visible = false; 

Tt doesn't. Marks->Visible doesn't do anything. The default marks are still displayed.

Это, кажется, работает, как ожидается, для меня здесь:

var Chart1; 

function draw() { 
    Chart1=new Tee.Chart("canvas1"); 

    bar1=Chart1.addSeries(new Tee.Bar()); 
    bar1.addRandom(6); 
    bar1.marks.visible=false; 

    bar2=Chart1.addSeries(new Tee.Bar()); 
    bar2.addRandom(6); 

    Chart1.draw(); 
} 
+0

Tks Yeray. Тем не менее, похоже, что TeeChart, поставляемый с RAD Studio XE3 от Embarcadero для HTML5, несколько ограничен.Когда я запускаю код с помощью $ line1-> getLinePen() -> setWidth (2); – MagnusBolm

+0

Снова: Tks Yeray. Тем не менее, похоже, что TeeChart, поставляемый с RAD Studio XE3 от Embarcadero для HTML5, несколько ограничен. Когда я запускаю код с помощью $ line1-> getLinePen() -> setWidth (2); Я получаю следующую ошибку: Неустранимая ошибка: вызов функции-члена getMarks() для не-объекта в C: \ Users \ Magnus B \ Documents \ HTML5 Builder \ Projects \ LS_user \ MainUnit.php в строке 97. Такая же ошибка возникает, если Я отключил метки с помощью getMarks – MagnusBolm

+0

Я думал, что вы используете TeeChart для PHP вместо TeeChart HTML5. Я отредактировал ответ со второй частью. Я надеюсь, что это помогает! – Yeray