Any chance you will be adding the option to consume data from a System.Data.DataSet object instead of having to duplicate the data in memory? This would save me a lot of time/memory since I have to keep the System.Data.DataSet's around for other reasons anyway.
The internal structure of our datasets is designed to be dynamic, unlimited in size, and fast. You can add and delete rows and columns anywhere in a dataset at maximum speed. Data is always accessed in a manner consistent with the underlying memory structure. Writing a general interface that would support some other structure would negate many of these features, which we find critical in interactive graphics.
Given the trade-off between memory and speed, users will always choose speed. For those applications that plot only a few thousand data points, the redundancy in the data is only 1/100 of 1% of the amount of free memory. For those applications that plot hundreds of thousands of data points, it is critical that data is accessed in the most efficient manner in order to keep the real-time performance of the package high.