You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			235 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Markdown
		
	
			
		
		
	
	
			235 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Markdown
		
	
# Morris.js - pretty time-series line graphs
 | 
						|
 | 
						|
[](http://travis-ci.org/morrisjs/morris.js)
 | 
						|
 | 
						|
Morris.js is the library that powers the graphs on http://howmanyleft.co.uk/.
 | 
						|
It's a very simple API for drawing line, bar, area and donut charts.
 | 
						|
 | 
						|
Cheers!
 | 
						|
 | 
						|
\- Olly (olly@oesmith.co.uk)
 | 
						|
 | 
						|
## Contributors wanted
 | 
						|
 | 
						|
I'm unfortunately not able to actively support Morris.js any more. I keep an eye
 | 
						|
on the issues, but I rarely have the time to fix bugs or review pull requests.
 | 
						|
 | 
						|
If you're interested in actively contributing to Morris.js, please contact me on
 | 
						|
the email address above.
 | 
						|
 | 
						|
## Requirements
 | 
						|
 | 
						|
- [jQuery](http://jquery.com/) (>= 1.7 recommended, but it'll probably work with
 | 
						|
  older versions)
 | 
						|
- [Raphael.js](http://raphaeljs.com/) (>= 2.0)
 | 
						|
 | 
						|
## Usage
 | 
						|
 | 
						|
See [the website](http://morrisjs.github.com/morris.js/).
 | 
						|
 | 
						|
## Development
 | 
						|
 | 
						|
Very daring.
 | 
						|
 | 
						|
Fork, hack, possibly even add some tests, then send a pull request :)
 | 
						|
 | 
						|
Remember that Morris.js is a coffeescript project. Please make your changes in
 | 
						|
the `.coffee` files, not in the compiled javascript files in the root directory
 | 
						|
of the project.
 | 
						|
 | 
						|
### Developer quick-start
 | 
						|
 | 
						|
You'll need [node.js](https://nodejs.org).  I recommend using
 | 
						|
[nvm](https://github.com/creationix/nvm) for installing node in
 | 
						|
development environments.
 | 
						|
 | 
						|
With node installed, install [grunt](https://github.com/cowboy/grunt) using
 | 
						|
`npm install -g grunt-cli`, and then the rest of the test/build dependencies
 | 
						|
with `npm install` in the morris.js project folder.
 | 
						|
 | 
						|
Once you're all set up, you can compile, minify and run the tests using `grunt`.
 | 
						|
 | 
						|
Note: I'm experimenting with using perceptual diffs to catch rendering
 | 
						|
regressions. Due to font rendering differences between platforms, the pdiff
 | 
						|
tests currently *only* pass on OS X.
 | 
						|
 | 
						|
## Changelog
 | 
						|
 | 
						|
### 0.5.1 - 15th June 2014
 | 
						|
 | 
						|
- Fix touch event handling.
 | 
						|
- Fix stacked=false in bar chart [#275](https://github.com/morrisjs/morris.js/issues/275)
 | 
						|
- Configurable vertical segments [#297](https://github.com/morrisjs/morris.js/issues/297)
 | 
						|
- Deprecate continuousLine option.
 | 
						|
 | 
						|
### 0.5.0 - 19th March 2014
 | 
						|
 | 
						|
- Update grunt dependency [#288](https://github.com/morrisjs/morris.js/issues/228)
 | 
						|
- Donut segment color config in data objects [#281](https://github.com/morrisjs/morris.js/issues/281)
 | 
						|
- Customisable line widths and point drawing [#272](https://github.com/morrisjs/morris.js/issues/272)
 | 
						|
- Bugfix for @options.smooth [#266](https://github.com/morrisjs/morris.js/issues/266)
 | 
						|
- Option to disable axes individually [#253](https://github.com/morrisjs/morris.js/issues/253)
 | 
						|
- Range selection [#252](https://github.com/morrisjs/morris.js/issues/252)
 | 
						|
- Week format for x-labels [#250](https://github.com/morrisjs/morris.js/issues/250)
 | 
						|
- Update developer quickstart instructions [#243](https://github.com/morrisjs/morris.js/issues/243)
 | 
						|
- Experimenting with perceptual diffs.
 | 
						|
- Add original data row to hover callback [#264](https://github.com/morrisjs/morris.js/issues/264)
 | 
						|
- setData method for donut charts [#211](https://github.com/morrisjs/morris.js/issues/211)
 | 
						|
- Automatic resizing [#111](https://github.com/morrisjs/morris.js/issues/111)
 | 
						|
- Fix travis builds [#298](https://github.com/morrisjs/morris.js/issues/298)
 | 
						|
- Option for rounded corners on bar charts [#305](https://github.com/morrisjs/morris.js/issues/305)
 | 
						|
- Option to set padding for X axis labels [#306](https://github.com/morrisjs/morris.js/issues/306)
 | 
						|
- Use local javascript for examples.
 | 
						|
- Events on non-time series [#314](https://github.com/morrisjs/morris.js/issues/314)
 | 
						|
 | 
						|
### 0.4.3 - 12th May 2013
 | 
						|
 | 
						|
- Fix flickering hover box [#186](https://github.com/morrisjs/morris.js/issues/186)
 | 
						|
- xLabelAngle option (diagonal labels!!) [#239](https://github.com/morrisjs/morris.js/issues/239)
 | 
						|
- Fix area chart fill bug [#190](https://github.com/morrisjs/morris.js/issues/190)
 | 
						|
- Make event handlers chainable
 | 
						|
- gridTextFamily and gridTextWeight options
 | 
						|
- Fix hovers with setData [#213](https://github.com/morrisjs/morris.js/issues/213)
 | 
						|
- Fix hideHover behaviour [#236](https://github.com/morrisjs/morris.js/issues/236)
 | 
						|
 | 
						|
### 0.4.2 - 14th April 2013
 | 
						|
 | 
						|
- Fix DST handling [#191](https://github.com/morrisjs/morris.js/issues/191)
 | 
						|
- Parse data values from strings in Morris.Donut [#189](https://github.com/morrisjs/morris.js/issues/189)
 | 
						|
- Non-cumulative area charts [#199](https://github.com/morrisjs/morris.js/issues/199)
 | 
						|
- Round Y-axis labels to significant numbers [#162](https://github.com/morrisjs/morris.js/162)
 | 
						|
- Customising default hover content [#179](https://github.com/morrisjs/morris.js/179)
 | 
						|
 | 
						|
### 0.4.1 - 8th February 2013
 | 
						|
 | 
						|
- Fix goal and event rendering. [#181](https://github.com/morrisjs/morris.js/issues/181)
 | 
						|
- Don't break when empty data is passed to setData [#142](https://github.com/morrisjs/morris.js/issues/142)
 | 
						|
- labelColor option for donuts [#159](https://github.com/morrisjs/morris.js/issues/159)
 | 
						|
 | 
						|
### 0.4.0 - 26th January 2013
 | 
						|
 | 
						|
- Goals and events [#103](https://github.com/morrisjs/morris.js/issues/103).
 | 
						|
- Bower package manager metadata.
 | 
						|
- More flexible formatters [#107](https://github.com/morrisjs/morris.js/issues/107).
 | 
						|
- Color callbacks.
 | 
						|
- Decade intervals for time-axis labels.
 | 
						|
- Non-continous line tweaks [#116](https://github.com/morrisjs/morris.js/issues/116).
 | 
						|
- Stacked bars [#120](https://github.com/morrisjs/morris.js/issues/120).
 | 
						|
- HTML hover [#134](https://github.com/morrisjs/morris.js/issues/134).
 | 
						|
- yLabelFormat [#139](https://github.com/morrisjs/morris.js/issues/139).
 | 
						|
- Disable axes [#114](https://github.com/morrisjs/morris.js/issues/114).
 | 
						|
 | 
						|
### 0.3.3 - 1st November 2012
 | 
						|
 | 
						|
- **Bar charts!** [#101](https://github.com/morrisjs/morris.js/issues/101).
 | 
						|
 | 
						|
### 0.3.2 - 28th October 2012
 | 
						|
 | 
						|
- **Area charts!** [#47](https://github.com/morrisjs/morris.js/issues/47).
 | 
						|
- Some major refactoring and test suite improvements.
 | 
						|
- Set smooth parameter per series [#91](https://github.com/morrisjs/morris.js/issues/91).
 | 
						|
- Custom dateFormat for string x-values [#90](https://github.com/morrisjs/morris.js/issues/90).
 | 
						|
 | 
						|
### 0.3.1 - 13th October 2012
 | 
						|
 | 
						|
- Add `formatter` option for customising value labels in donuts [#75](https://github.com/morrisjs/morris.js/issues/75).
 | 
						|
- Cycle `lineColors` on line charts to avoid running out of colours [#78](https://github.com/morrisjs/morris.js/issues/78).
 | 
						|
- Add method to select donut segments. [#79](https://github.com/morrisjs/morris.js/issues/79).
 | 
						|
- Don't go negative on yMin when all y values are zero. [#80](https://github.com/morrisjs/morris.js/issues/80).
 | 
						|
- Don't sort data when parseTime is false [#83](https://github.com/morrisjs/morris.js/issues/83).
 | 
						|
- Customise styling for points. [#87](https://github.com/morrisjs/morris.js/issues/87).
 | 
						|
 | 
						|
### 0.3.0 - 15th September 2012
 | 
						|
 | 
						|
- Donut charts!
 | 
						|
- Bugfix: ymin/ymax bug [#71](https://github.com/morrisjs/morris.js/issues/71).
 | 
						|
- Bugfix: infinite loop when data indicates horizontal line [#66](https://github.com/morrisjs/morris.js/issues/66).
 | 
						|
 | 
						|
### 0.2.10 - 26th June 2012
 | 
						|
 | 
						|
- Support for decimal labels on y-axis [#58](https://github.com/morrisjs/morris.js/issues/58).
 | 
						|
- Better axis label clipping [#63](https://github.com/morrisjs/morris.js/issues/63).
 | 
						|
- Redraw graphs with updated data using `setData` method [#64](https://github.com/morrisjs/morris.js/issues/64).
 | 
						|
- Bugfix: series with zero or one non-null values [#65](https://github.com/morrisjs/morris.js/issues/65).
 | 
						|
 | 
						|
### 0.2.9 - 15th May 2012
 | 
						|
 | 
						|
- Bugfix: Fix zero-value regression
 | 
						|
- Bugfix: Don't modify user-supplied data
 | 
						|
 | 
						|
### 0.2.8 - 10th May 2012
 | 
						|
 | 
						|
- Customising x-axis labels with `xLabelFormat` option
 | 
						|
- Only use timezones when timezone info is specified
 | 
						|
- Fix old IE bugs (mostly in examples!)
 | 
						|
- Added `preunits` and `postunits` options
 | 
						|
- Better non-continuous series data support
 | 
						|
 | 
						|
### 0.2.7 - 2nd April 2012
 | 
						|
 | 
						|
- Added `xLabels` option
 | 
						|
- Refactored x-axis labelling
 | 
						|
- Better ISO date support
 | 
						|
- Fix bug with single value in non time-series graphs
 | 
						|
 | 
						|
### 0.2.6 - 18th March 2012
 | 
						|
 | 
						|
- Partial series support (see `null` y-values in `examples/quarters.html`)
 | 
						|
- `parseTime` option bugfix for non-time-series data
 | 
						|
 | 
						|
### 0.2.5 - 15th March 2012
 | 
						|
 | 
						|
- Raw millisecond timestamp support (with `dateFormat` option)
 | 
						|
- YYYY-MM-DD HH:MM[:SS[.SSS]] date support
 | 
						|
- Decimal number labels
 | 
						|
 | 
						|
### 0.2.4 - 8th March 2012
 | 
						|
 | 
						|
- Negative y-values support
 | 
						|
- `ymin` option
 | 
						|
- `units` options
 | 
						|
 | 
						|
### 0.2.3 - 6th Mar 2012
 | 
						|
 | 
						|
- jQuery no-conflict compatibility
 | 
						|
- Support ISO week-number dates
 | 
						|
- Optionally hide hover on mouseout (`hideHover`)
 | 
						|
- Optionally skip parsing dates, treating X values as an equally-spaced series (`parseTime`)
 | 
						|
 | 
						|
### 0.2.2 - 29th Feb 2012
 | 
						|
 | 
						|
- Bugfix: mouseover error when options.data.length == 2
 | 
						|
- Automatically sort options.data
 | 
						|
 | 
						|
### 0.2.1 - 28th Feb 2012
 | 
						|
 | 
						|
- Accept a DOM element *or* an ID in `options.element`
 | 
						|
- Add `smooth` option
 | 
						|
- Bugfix: clone `@default`
 | 
						|
- Add `ymax` option
 | 
						|
 | 
						|
## License
 | 
						|
 | 
						|
Copyright (c) 2012-2014, Olly Smith
 | 
						|
All rights reserved.
 | 
						|
 | 
						|
Redistribution and use in source and binary forms, with or without
 | 
						|
modification, are permitted provided that the following conditions are met:
 | 
						|
 | 
						|
1. Redistributions of source code must retain the above copyright notice, this
 | 
						|
   list of conditions and the following disclaimer.
 | 
						|
2. Redistributions in binary form must reproduce the above copyright notice,
 | 
						|
   this list of conditions and the following disclaimer in the documentation
 | 
						|
   and/or other materials provided with the distribution.
 | 
						|
 | 
						|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 | 
						|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 | 
						|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
						|
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 | 
						|
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
						|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 | 
						|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 | 
						|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
						|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
						|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 |