README.md
172 lines
| 1 | # Sparkline |
| 2 | PHP Class (using GD) to generate sparklines |
| 3 | |
| 4 | [](https://app.travis-ci.com/davaxi/Sparkline](https://app.travis-ci.com/davaxi/Sparkline](https://app.travis-ci.com/davaxi/Sparkline) |
| 5 | [](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline) |
| 6 | [](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline) |
| 7 | [](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline) |
| 8 | [](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline](https://packagist.org/packages/davaxi/sparkline) |
| 9 | [](https://codeclimate.com/github/davaxi/Sparkline/maintainability](https://codeclimate.com/github/davaxi/Sparkline/maintainability](https://codeclimate.com/github/davaxi/Sparkline/maintainability) |
| 10 | [](https://codeclimate.com/github/davaxi/Sparkline/test_coverage](https://codeclimate.com/github/davaxi/Sparkline/test_coverage](https://codeclimate.com/github/davaxi/Sparkline/test_coverage) |
| 11 | [](https://codeclimate.com/github/davaxi/Sparkline](https://codeclimate.com/github/davaxi/Sparkline](https://codeclimate.com/github/davaxi/Sparkline) |
| 12 | |
| 13 | ## Installation |
| 14 | |
| 15 | This page contains information about installing the Library for PHP. |
| 16 | |
| 17 | ### Requirements |
| 18 | |
| 19 | - PHP version 7.0.0 or greater |
| 20 | - The GD PHP extension |
| 21 | - The MBString PHP extension |
| 22 | |
| 23 | #### Using Composer |
| 24 | |
| 25 | You can install the library by adding it as a dependency to your composer.json. |
| 26 | |
| 27 | ```shell |
| 28 | $ composer require davaxi/sparkline |
| 29 | ``` |
| 30 | |
| 31 | or |
| 32 | |
| 33 | ```json |
| 34 | "require": { |
| 35 | "davaxi/sparkline": "^2.3" |
| 36 | } |
| 37 | ``` |
| 38 | |
| 39 | #### For PHP >= 5.4.0 |
| 40 | |
| 41 | Show https://github.com/davaxi/Sparkline/tree/1.2.3 |
| 42 | |
| 43 | ## Usage |
| 44 | |
| 45 | Example: |
| 46 | |
| 47 |  |
| 48 | |
| 49 | ```php |
| 50 | <?php |
| 51 | |
| 52 | require '/path/to/sparkline/folder/autoload.php'; |
| 53 | |
| 54 | $sparkline = new Davaxi\Sparkline(); |
| 55 | $sparkline->setData(array(2,4,5,6,10,7,8,5,7,7,11,8,6,9,11,9,13,14,12,16)); |
| 56 | $sparkline->display(); |
| 57 | |
| 58 | ?> |
| 59 | ``` |
| 60 | |
| 61 | ## Documentation |
| 62 | |
| 63 | ```php |
| 64 | $sparkline = new Davaxi\Sparkline(); |
| 65 | |
| 66 | // Change format (Default value 80x20) |
| 67 | $sparkline->setFormat('100x40'); |
| 68 | // or |
| 69 | $sparkline->setWidth(100); |
| 70 | $sparkline->setHeight(40); |
| 71 | |
| 72 | // Apply padding |
| 73 | $sparkline->setPadding('10'); // > top: 10 | right: 10 | bottom: 10 | left: 10 |
| 74 | $sparkline->setPadding('10 20'); // > top: 10 | right: 20 | bottom: 10 | left: 20 |
| 75 | $sparkline->setPadding('10 20 30'); // > top: 10 | right: 20 | bottom: 30 | left: 20 |
| 76 | $sparkline->setPadding('10 20 30 40'); // > top: 10 | right: 20 | bottom: 30 | left: 40 |
| 77 | |
| 78 | // Change background color (Default value #FFFFFF) |
| 79 | $sparkline->setBackgroundColorHex('#0f354b'); |
| 80 | // or |
| 81 | $sparkline->setBackgroundColorRGB(15, 53, 75); |
| 82 | // or |
| 83 | $sparkline->deactivateBackgroundColor(); |
| 84 | |
| 85 | // Change line color (Default value #1388db) |
| 86 | $sparkline->setLineColorHex('#1c628b'); |
| 87 | // or |
| 88 | $sparkline->setLineColorRGB(28, 98, 139); |
| 89 | |
| 90 | // Change line thickness (Default value 1.75 px) |
| 91 | $sparkline->setLineThickness(2.2); |
| 92 | |
| 93 | // Change fill color (Default value #e6f2fa) |
| 94 | $sparkline->setFillColorHex('#8b1c2b'); |
| 95 | // or |
| 96 | $sparkline->setFillColorRGB(139, 28, 43); |
| 97 | // or for specific series |
| 98 | $sparkline->deactivateFillColor(); |
| 99 | // or for all series |
| 100 | $sparkline->deactivateAllFillColor(); |
| 101 | |
| 102 | $sparkline->setData(array(.....)); // Set data set |
| 103 | $sparkline->getData(); // Get seted data |
| 104 | $sparkline->generate(); // If you want regenerate picture |
| 105 | |
| 106 | // Change base of height value (default max($data)) |
| 107 | $sparkline->setBase(20); |
| 108 | |
| 109 | // Change origin of chart value (yAxis) (default: 0) |
| 110 | $sparkline->setOriginValue(40); |
| 111 | |
| 112 | // Add dot on first/last/minimal/maximal value |
| 113 | // Data set before used method |
| 114 | $sparkline->addPoint('minimum', 3, '#efefef'); |
| 115 | $sparkline->addPoint('maximum', 3, '#efefef'); |
| 116 | $sparkline->addPoint('first', 3, '#efefef'); |
| 117 | $sparkline->addPoint('last', 3, '#efefef'); |
| 118 | |
| 119 | // Or by index |
| 120 | $sparkline->addPoint(1, 3, '#efefef'); |
| 121 | |
| 122 | // If display |
| 123 | $sparkline->setEtag('your hash'); // If you want add ETag header |
| 124 | $sparkline->setFilename('yourPictureName'); // For filename header |
| 125 | $sparkline->setExpire('+1 day'); // If you want add expire header |
| 126 | // or |
| 127 | $sparkline->setExpire(strtotime('+1 day')); |
| 128 | $sparkline->display(); // Display with correct headers |
| 129 | |
| 130 | // If save |
| 131 | $sparkline->save('/your/path/to/save/picture'); |
| 132 | |
| 133 | $sparkline->destroy(); // Destroy picture after generated / displayed / saved |
| 134 | ``` |
| 135 | |
| 136 | ### Multiple sparkline series |
| 137 | |
| 138 | ```php |
| 139 | <?php |
| 140 | |
| 141 | $sparkline = new Davaxi\Sparkline(); |
| 142 | |
| 143 | // For add series |
| 144 | $sparkline->addSeries([0,1,2,3]); |
| 145 | $sparkline->addSeries([2,3,5,6]); |
| 146 | |
| 147 | // Or |
| 148 | |
| 149 | $sparkline->setData( |
| 150 | [0,1,2,3], |
| 151 | [2,3,5,6] |
| 152 | ); |
| 153 | |
| 154 | // For add point on series |
| 155 | $sparkline->addPoint('first', 3, '#efefef', 0); // Add point on series 0 |
| 156 | $sparkline->addPoint('last', 3, '#efefef', 1); // Add point on series 1 |
| 157 | |
| 158 | // For fill colors, specify on last argument series index's |
| 159 | $sparkline->setFillColorHex('#8b1c2b', 0); |
| 160 | $sparkline->setFillColorHex('#8bdddf', 1); |
| 161 | // or |
| 162 | $sparkline->setFillColorRGB(139, 28, 43, 0); |
| 163 | $sparkline->setFillColorRGB(139, 28, 55, 1); |
| 164 | |
| 165 | // For line colors, specify on last argument series index's |
| 166 | $sparkline->setLineColorHex('#1c628b', 0); |
| 167 | $sparkline->setLineColorHex('#1c62df', 1); |
| 168 | // or |
| 169 | $sparkline->setLineColorRGB(28, 98, 139, 0); |
| 170 | $sparkline->setLineColorRGB(28, 98, 55, 1); |
| 171 | ``` |
| 172 |