Recommendations for Charting/Graphing libraries?
-
I am looking for a good library for producing scientific and engineering charts/graphs of data and am hoping that some readers here can give me some advice. I am a fundamentalist Tuftean, meaning that I want to get the maximum information to ink ratio---no chartjunk, ducks, or pseudo-3D eye candy. Printed output should be of sufficient quality for camera-ready copy for publication. First, I want something that will be flexible, extendible, and object-oriented. I have been using Stingray's Objective Chart for the last three years and while I have been happy with many aspects of it, I have been growing more and more unhappy with the lack of object-oriented design there feel that I've finally outgrown it and need to look elsewhere. (The Stingray object design eschews polymorphism in favor of efficiently switching chart type at runtime, which prevents you from easily creating new chart types by subclassing). Second, I want something that can handle large data sets easily---I typically want to look at several data vectors at a time with about 32K points in each. A new project I am working on will be dealing with data sets may times larger than this. I want the user to be able to zoom in and out easily, for the chart to be pre-rendered in a buffer so moving windows or dialog boxes in front of the chart window does not cause lengthy redraws, and for it to handle aliasing in a reasonable manner. Third, it is essential that I be able to put several charts into a window, with either stacked vertically one atop the other with the x-axes aligned or stacked horizontally left-to-right with the y-axes aligned. Fourth, it should fit nicely into the MFC Doc/View paradigm---I should easily be able to put charts into a CView either by deriving my view from a subclass of CView or by calling something appropriate from my OnDraw() routine. Fifth, I strongly prefer to have access to the source code. Too many times in the past, I have purchased closed-source libraries only to find that I could not make them do what I want or that the documentation is too poorly written for me to figure out how to use the library effectively. The worst story in this category was a library I evaluated before settling on Stingray: KL Group's OlectraChart, for which the demo they sent me kept leaking resources at an astonishing rate until after half an hour or so, it would exhaust 128 MB of memory and crash the computer. Does anyone here have a
-
I am looking for a good library for producing scientific and engineering charts/graphs of data and am hoping that some readers here can give me some advice. I am a fundamentalist Tuftean, meaning that I want to get the maximum information to ink ratio---no chartjunk, ducks, or pseudo-3D eye candy. Printed output should be of sufficient quality for camera-ready copy for publication. First, I want something that will be flexible, extendible, and object-oriented. I have been using Stingray's Objective Chart for the last three years and while I have been happy with many aspects of it, I have been growing more and more unhappy with the lack of object-oriented design there feel that I've finally outgrown it and need to look elsewhere. (The Stingray object design eschews polymorphism in favor of efficiently switching chart type at runtime, which prevents you from easily creating new chart types by subclassing). Second, I want something that can handle large data sets easily---I typically want to look at several data vectors at a time with about 32K points in each. A new project I am working on will be dealing with data sets may times larger than this. I want the user to be able to zoom in and out easily, for the chart to be pre-rendered in a buffer so moving windows or dialog boxes in front of the chart window does not cause lengthy redraws, and for it to handle aliasing in a reasonable manner. Third, it is essential that I be able to put several charts into a window, with either stacked vertically one atop the other with the x-axes aligned or stacked horizontally left-to-right with the y-axes aligned. Fourth, it should fit nicely into the MFC Doc/View paradigm---I should easily be able to put charts into a CView either by deriving my view from a subclass of CView or by calling something appropriate from my OnDraw() routine. Fifth, I strongly prefer to have access to the source code. Too many times in the past, I have purchased closed-source libraries only to find that I could not make them do what I want or that the documentation is too poorly written for me to figure out how to use the library effectively. The worst story in this category was a library I evaluated before settling on Stingray: KL Group's OlectraChart, for which the demo they sent me kept leaking resources at an astonishing rate until after half an hour or so, it would exhaust 128 MB of memory and crash the computer. Does anyone here have a
I just wrote my own. Its not that hard, and since the commerical packages usually don't really have what I need, why compromise if its very very important to your application?? 99% of the time I try to find what I need.....when it comes to charting my data though.....well since thats what people spend their time using, it seems wise for me to spend my time making that charts present information EXACTLY as I want it to be presented.