About canvasXpress
CanvasXpress is a javascript library based on the <canvas> tag implemented in HTML5. I developed this library as the core visualization component for our BMS systems biology platform which I hope to release soon. The basic idea was to have generic and simple way to display genomics data. CanvasXpress supports bar graphs, line graphs, bar-line combination graphs, boxplots, dotplots, area graphs, stacked graphs, stacked-line combination graphs, percentage-stacked graphs, percentage-stacked-line combination graphs, heatmaps, heatmaps, 2D-scatter plots, 2D-scatter bubble plots, 3D-scatter plots, pie charts, correlation plots, Venn diagrams, networks (or pathways), candlesticks plots and genome browser. It also supports a few data transformations like log and exponential transformation, z-score, percentile transformation, ratios and transposing. It also support grouping of samples, hierarchical clustering, kmeans, complex layouts, regression lines, normal distribution plots, non linear fitting, zooming, events ... well, there a lot more features but maybe at this time I already capture your attention. Here are some example graphs so you can mouseover, click, select, rotate ... yada, yada, yada ...
Changes
/*
*
* Version 4.0
*
* 1. Added disable the version tooltip
* 2. Added ability to position the variable labels in heatmaps
* 3. Fixed bug in axis increments where all values are zero
* 4. Added validator for the parameters passed
* 5. Added label descriptions for variable and samples in heatmaps
* 6. Added ability to increase the width of the color indicators in heatmaps
* 7. Added moving averages 5, 10, 25 and 50 for the market graphs
* 8. Added ability to rotate 90 degrees sample, variable and tick labels
* 9. Improved quality of the lines in graphs (it still can be improved)
* 10. Fixed bug in normal distribution and regression lines
*
* Version 3.9
*
* 1. Changed path to canvasXpress.gif to images
* 2. Added a method to freeze the network after loading
* 3. Fixed calculation of tick values (again)
* 4. Fixed calculation for the length of the edges in the networks
* 5. Other minor fixes
* 6. Fixed position of images with network nodes
* 7. Added Title for variables in heatmaps
* 8. Added hide configurator on image click events
* 9. Changed default for modelEvent to 'global' to increase performance
* 10. Modified BarLine to align line to first series when necessary
* 11. Added StackedLine and StackedLinePercentage
*
* Version 3.8
*
* 1. fixed bug in setting user defined colors
* 2. added capability to implement user defined color in Venn diagrams
* 3. added capability to plot the untransformed tick values in scatter plots
* 4. fixed bugs in defining the tick values
* 5. fixed bugs in network resizing, moving and selecting
* 6. added configurator capability for network edges after alt + left mouse click
* 7. added flag to dissable all user events
* 8. extended zooming model for networks and heatmaps with mouse wheel and + / - keys
* 9. changed the zoom default for chosing nodes in networks to require ctrl + mouse drag
* 10. added panning capabilities for networks and heatmaps with arrow, page keys and drag
* 11. fixed bug in sizing the genome browser
*
* Version 3.7
*
* 1. added capability to get data remotely
* 2. improved support for mobile apps
* 3. changed the events used for showing the configurator to dblclick in non mobile apps
* 4. add single click to show the configurator in nn mobile apps
* 5. added functions to the configurator
* 6. fixed bug in newick parser (dendrograms)
*
* Version 3.6
*
* 1. added capability to use images in the networks
* 2. fixed event bugs
* 3. fixed more bugs
* 4. added support for background images
* 5. added z-Index support for images
* 6. added show values for bar graphs and heatmaps
* 7. improved performance to save network data (Mingyi Liu)
* 8. added multiple pie charts for complex layouts
* 9. added a configurator after alt + left mouse click or double click
* 10. added a configurator for the network nodes after an alt + left mouse click
* 11. improve color management, transparencies and gradients
*
* Version 3.5
*
* 1. added rotation for the variable and sample labels
* 2. modified generic method to create shapes 'drawShape' to add outline width
* 3. modified generic method to create lines 'drawLine' to add outline width and cap style
* 4. added more backgroundType options to contrast the plotting area
* 5. added background color for the legends
* 6. added thickness for line plots
*
* Version 3.4
*
* 1. added more color schemes for the heatmaps
*
* Version 3.3
*
* 1. added radial layout for the networks
* 2. added bars and heatmaps for the networks
* 3. extended the shapes model to include width, height and rotation
* 4. added a generic method to draw shapes, lines and text in the canvas
* 5. remove canceling the bubbling in the events
*
* Version 3.2
*
* 1. overlays parameter taken out and replaced by smpOverlays
* 2. added support for variable overlays in heatmaps
* 3. added font parameters for overlays
* 4. added clustering capabilities
* 5. enhanced the complex layout object
* 6. implemented all vs all for 2D scatter plots (layout)
* 7. added segregation of variables in the data (layout)
* 8. added alignment for selected nodes in network
* 9. refactor the binding keys
* 10. added help for binding keys
* 11. added lines to join data points in series in scatter plots
* 12. added regression lines in scatter plots
* 13. added normal distribution lines in scatter plots
* 14. added a method to generate random data
* 15. added histogram method
* 16. added decoration shapes in 2D scatter plots
* 17. inplemented colorBy method in bar graphs to color by a sample class
* 18. add support for switching branches in dendrograms
*
*/
License
CanvasXpress - JavaScript Canvas Library Copyright (c) 2009-2010 Isaac Neuhaus imnphd@gmail.com
Redistributions of the source code must retain this copyright notice and the following disclaimer.
CanvasXpress is licensed under the terms of the Open Source LGPL 3.0 license.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Please see a copy of the GNU General Public License at http://www.gnu.org/licenses.
Commercial use is permitted to the extent that this source code do NOT become part of any other Open Source or Commercially licensed development library or toolkit without explicit permission.