Hi
You don't say how you're receiving your data, so this may not be a perfect answer.
The TimeSeries Chart takes an InfoTable (or series of InfoTables, I think up to 16 of them...) as input, so you can create an infoTable from your data and display that InfoTable in your chart.
Unless your mashup is pulling in the historical data for display directly from another source, you're going to need to "persist" it somewhere, this could be an InfoTable attribute on your Thing, a DataTable or even a Stream. The infoTable attribute, if not marked as persistent is only held in memory, however you need to make sure that you limit the amount of data you have there. This is especially important if you have a large number of Things.
With persisted information, you can easily create services to purge the content of the Stream/ValueStream/DataTable to stop the database from growing too large.
Out of interest, what's you reason for wanting to avoid Streams/ValueStreams?
Regards
Ian