diff --git a/README.md b/README.md index 7af77ec..39a1419 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ PHP Object wrapper for the Google Chart API =========================================== -A simple PHP Object wrapper for the Google Chart API. Should help anyone who needs to automate the building of the Google Chart url. Supports (almost) all types of charts. +A simple PHP Object wrapper for the Google Chart API. Should help anyone who needs to automate the building of the Google Chart url. Supports (almost) all types of charts. Prerequisites ------------- To use this API, you should have a little PHP experience; a little patience to read the documentation; and a little persistence to keep trying if your first charts don't look as you expect them to. @@ -19,46 +19,14 @@ Pie Chart Example Pie chart using the gPieChart class generated by this code: $piChart = new gPieChart(); - // or if you installed via composer - // $piChart = new gchart\gPieChart(); - $piChart->addDataSet(array(112,315,66,40)); - $piChart->setLabels(array("first", "second", "third","fourth")); + $piChart->setLabels = array("first", "second", "third","fourth"); $piChart->setLegend(array("first", "second", "third","fourth")); - $piChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa")); - echo $piChart->getImgCode(); - - -Installation via Composer ------ -To install using the Composer framework, first install Composer: - - curl -s https://getcomposer.org/installer | php - - -Create a composer.json file in your project root: - - { - "require": { - "gchartphp/gchartphp": "dev-master" - } - } - -Then run the install: - - php composer.phar install - -Then add this line to your application’s index.php file: - - setColors = array("ff3344", "11ff11", "22aacc", "3333aa"); Notes ----- - * The version that was first committed to GITHub is the same that the one on Google Code. Future commits will be reserved to GITHub. + * The verion that was first committed to GUTHub is the same that is on Google Code. Future commits will be reserved to GITHub. * I am pleased with how the code is shaping up. I haven't had much of an opportunity in the past to play with inheritence and polymorphism in PHP. Change Log diff --git a/composer.json b/composer.json index be33971..9495566 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "gChartPhp/gChartPhp", + "name": "gchartphp/gchartphp", "description": "PHP Object wrapper for the Google Chart API.", "keywords": ["Google Charts", "wrapper", "php", "charts"], "homepage": "https://github.com/pacbard/gChartPhp", diff --git a/gchart/gChart.php b/gchart/gChart.php index 9fe08ff..075b2a1 100644 --- a/gchart/gChart.php +++ b/gchart/gChart.php @@ -20,7 +20,7 @@ class gChart * @var string * @usedby getUrl() */ - private $baseUrl = "chart.apis.google.com/chart?"; + private $baseUrl = "image-charts.com/chart?"; /** * @brief Data set values. @@ -254,40 +254,7 @@ private function simpleEncodeData($data) return $encodedData; } /** - * @brief Specifies the style of an axis. - * - * @param $axisIndex Integer This is a zero-based index into the axis array specified by setVisibleAxes - * @param $axisStyle String You can specify the font size, color, and alignment for axis labels, both custom labels and - * default label values. All labels on the same axis have the same format. If you have multiple - * copies of an axis, you can format each one differently. You can also specify the format of a - * label string, for example to show currency symbols or trailing zeroes. - * By default, the top and bottom axes do not show tick marks by the values, while the left and - * right axes do show them. - * - * Refer to official documentation at: - * http://code.google.com/apis/chart/image/docs/gallery/bar_charts.html#axis_labels - */ - public function addAxisStyle($axisIndex, $axisStyle) - { - $this->setProperty('chxs', $axisIndex.','.$this->encodeData($axisStyle, '|'), true); - } - /** - * @brief Specifies the style of an axis. - * - * @param $axisIndex Integer This is a zero-based index into the axis array specified by setVisibleAxes - * @param $axisTickLength Integer You can specify long tick marks for specific axes. Typically this is - * used to extend a tick mark across the length of a chart. Use the addAxisStyle() - * method to change the tick mark color. - * - * Refer to official documentation at: - * http://code.google.com/apis/chart/image/docs/gallery/bar_charts.html#axis_labels - */ - public function addAxisTickMarkStyle($axisIndex, $axisTickLength) - { - $this->setProperty('chxtc', $axisIndex.','.$this->encodeData($axisTickLength, '|'), true); - } - /* - * Extended Text. + * @brief Encodes the data as Extended Text. * * This specifies integer values from 0-4095, inclusive, encoded by two alphanumeric characters. * @@ -491,7 +458,6 @@ public function setTitle($title) { $title = str_replace("\r\n", "|", $title); $title = str_replace(" ", "+", $title); - $this->setProperty('chtt', $title); } /** * @brief Sets font size and color of the title @@ -718,7 +684,7 @@ public function getUrl() { $parms[] = $key.'='.$value; } - return $fullUrl.implode('&', $parms); + return $fullUrl.implode('&', $parms); } /** diff --git a/gchart/gChartExample.php b/gchart/gChartExample.php new file mode 100644 index 0000000..9a36794 --- /dev/null +++ b/gchart/gChartExample.php @@ -0,0 +1,458 @@ + + +
+
+code:
+
+$piChart = new gPieChar();
+
+$piChart->addDataSet(array(112,315,66,40));
+$piChart->setLegend(array("first", "second", "third","fourth"));
+$piChart->setLabels(array("first", "second", "third","fourth"));
+$piChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+
+code:
+
+$pie3dChart = new gPie3DChart();
+
+$pie3dChart->addDataSet(array(112,315,66,40));
+$pie3dChart->setLegend(array("first", "second", "third","fourth"));
+$pie3dChart->setLabels(array("first", "second", "third","fourth"));
+$pie3dChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+
+code:
+
+$CPChart = new gConcentricPieChart();
+
+$CPChart->addDataSet(array(112,315,66,40));
+$CPChart->addDataSet(array(100,235,346,50));
+$CPChart->addColors(array("008800", "880000"));
+$CPChart->addColors(array("000088", "888800"));
+$CPChart->addLegend(array('1', '2', '3', '4'));
+$CPChart->addLegend(array('1a', '2a', '3a', '4a'));
+
+code:
+
+$lineChart = new gLineChart(300,300);
+
+$lineChart->addDataSet(array(112,315,66,40));
+$lineChart->addDataSet(array(212,115,366,140));
+$lineChart->addDataSet(array(112,95,116,140));
+$lineChart->setLegend(array("first", "second", "third","fourth"));
+$lineChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+$lineChart->setVisibleAxes(array('x','y'));
+$lineChart->setDataRange(30,400);
+$lineChart->addAxisRange(0, 1, 4, 1);
+$lineChart->addAxisRange(1, 30, 400);
+$lineChart->addBackgroundFill('bg', 'EFEFEF');
+$lineChart->addBackgroundFill('c', '000000');
+
+code:
+
+$lineChart = new gLineChart(300,300);
+
+$lineChart->addDataSet(array(112,315,66,40));
+$lineChart->addDataSet(array(212,115,366,140));
+$lineChart->addDataSet(array(112,95,116,140));
+$lineChart->setLegend(array("first", "second", "third","fourth"));
+$lineChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+$lineChart->setVisibleAxes(array('x','y'));
+$lineChart->setDataRange(30,400);
+$lineChart->addAxisLabel(0, array("This", "axis", "has", "labels!"));
+$lineChart->addAxisRange(1, 30, 400);
+$lineChart->setStripFill('bg',0,array('CCCCCC',0.15,'FFFFFF',0.1);
+
+code:
+
+$lineChart = new gLineChart(300,300);
+
+$lineChart->addDataSet(array(112,125,66,40));
+$lineChart->setLegend(array("first"));
+$lineChart->setColors(array("ff3344"));
+$lineChart->setVisibleAxes(array('x','y'));
+$lineChart->setDataRange(30,130);
+$lineChart->addAxisRange(0, 1, 4, 1);
+$lineChart->addAxisRange(1, 30, 130);
+$lineChart->addLineFill('B','76A4FB',0,0);
+
+code:
+
+$lineChart = new gLineChart(300,300);
+
+$lineChart->addDataSet(array(112,315,66,40));
+$lineChart->addDataSet(array(212,115,366,140));
+$lineChart->addDataSet(array(112,95,116,140));
+$lineChart->setLegend(array("first", "second", "third","fourth"));
+$lineChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+$lineChart->setVisibleAxes(array('x','y'));
+$lineChart->setDataRange(0,400);
+$lineChart->addAxisRange(0, 1, 4, 1);
+$lineChart->addAxisRange(1, 0, 400);
+$lineChart->setGridLines(33,10);
+
+code:
+
+$barChart = new gBarChart(500,150,'g');
+
+$barChart->addDataSet(array(112,315,66,40));
+$barChart->addDataSet(array(212,115,366,140));
+$barChart->addDataSet(array(112,95,116,140));
+$barChart->setColors(array("ff3344", "11ff11", "22aacc"));
+$barChart->setLegend(array("first", "second", "third"));
+$barChart->setGradientFill('c',0,array('FFE7C6',0,'76A4FB',1));
+$barChart->setAutoBarWidth();
+
+code:
+
+$barChart = new gBarChart(150,500,'g','h');
+
+$barChart->addDataSet(array(112,315,66,40));
+$barChart->addDataSet(array(212,115,366,140));
+$barChart->addDataSet(array(112,95,116,140));
+$barChart->setColors(array("ff3344", "11ff11", "22aacc"));
+$barChart->setLegend(array("first", "second", "third"));
+$barChart->setGradientFill('c',0,array('FFE7C6',0,'76A4FB',1));
+$barChart->setLegend(array("This", "is", "different"));
+
+code:
+
+$barChart = new gStackedBarChart(450,350);
+
+$barChart->addDataSet(array(112,315,66,40));
+$barChart->addDataSet(array(212,115,366,140));
+$barChart->addDataSet(array(112,95,116,140));
+$barChart->setLegend(array("first", "second", "third","fourth"));
+$barChart->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+$barChart->setTitle("A multiline\r\nA Title");
+
+code:
+
+$barChart->setHorizontal(true);
+
+$barChart->groupSpacerWidth = 10;
+
+code:
+
+$vennDiagram = new gVennDiagram();
+
+$vennDiagram->setSizes(1120,3150);
+$vennDiagram->setIntersections(220, 320);
+$vennDiagram->setEncodingType('s');
+$vennDiagram->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+
+code:
+
+$vennDiagram = new gVennDiagram();
+
+$vennDiagram->setSizes(10, 10, 10);
+$vennDiagram->setIntersections(2, 2, 2, 1);
+$vennDiagram->setColors(array("ff3344", "11ff11", "22aacc", "3333aa"));
+
+code:
+
+$latex = new gFormula();
+
+$latex -> setLatexCode('\cos(x)^2+\sin(x)^2=1');
+
+code:
+
+$qr = new gQRCode();
+
+$qr -> setQRCode('gChartPhp is awesome!');
+
+code:
+
+$meter = new gMeterChart();
+
+$meter -> addDataSet(array(10, 50, 90));
+$meter -> setColors('FFFFFF','000000');
+
+code:
+
+$map = new gMapChart();
+
+$map -> setZoomArea('usa');
+$map -> setStateCodes(array('CA', 'TX', 'NY', 'UT', 'NV'));
+$map -> addDataSet(array(23, 32, 12, 54, 23));
+$map -> setColors('342544', array('BE3481','34BE12'));
+
+code:
+
+$scatter = new gScatterChart();
+
+$scatter -> addDataSet(array(12,87,75,41,23,96,68,71,34,9));
+$scatter -> addDataSet(array(98,60,27,34,56,79,58,74,18,76));
+$scatter -> addValueMarkers('d','FF0000',0,-1,15);
+$scatter -> setVisibleAxes(array('x','y'));
+$scatter -> addAxisRange(0, 0, 100);
+$scatter -> addAxisRange(1, 0, 100);
+
+code:
+
+$barChart = new gBarChart(250,250,'s');
+
+$barChart->addDataSet(array(0,10,20,30,20,70,80));
+$barChart->addDataSet(array(0,20,10,5,20,30,10));
+$barChart->addHiddenDataSet(array(10,0,20,15,60,40,30));
+$barChart->addValueMarkers('D','76A4FB',2,0,3);
+$barChart->setAutoBarWidth();
+
+code:
+
+$candlestick = new gLineChart(200,125);
+
+$candlestick -> addDataSet(array(90,80,70,50,40,30,20,10));
+$candlestick -> addHiddenDataSet(array(0,5,10,0,5,10,0));
+$candlestick -> addHiddenDataSet(array(2,15,20,5,15,40,0));
+$candlestick -> addHiddenDataSet(array(5,35,20,2,35,20,0));
+$candlestick -> addHiddenDataSet(array(15,40,30,15,40,50,0));
+$candlestick -> addValueMarkers('F','000000',1,'1:-2',20);
+$candlestick -> setVisibleAxes(array('y'));
+$candlestick -> addAxisRange(0, 0, 100);
+