MASON-INTEREST-L Archives

June 2016

MASON-INTEREST-L@LISTSERV.GMU.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Sean Luke <[log in to unmask]>
Reply To:
MASON Multiagent Simulation Toolkit <[log in to unmask]>
Date:
Wed, 15 Jun 2016 00:17:48 +0200
Content-Type:
text/plain
Parts/Attachments:
text/plain (31 lines)
The fundamental problem with XYSeries is that they display everything.  So if you have an O(n) display issue which grows as n grows.  That's the reason behind MASON's DataCuller mechanism.  You're going to need to do a similar procedure for a stacked timeseries.

I have looked over DataCuller and I think you can use exactly the same code.  See how it's used in TimeSeriesAttributes.  Basically the DataCuller is first asked if it thinks stuff should be culled (because there are too many points).  If so, it's then asked which points to remove.  [You could give it a single time series row in your dataset probably.]  Then TimeSeriesAttributes goes through and deletes all the points the DataCuller suggested.

Sean

On Jun 15, 2016, at 12:04 AM, Joey Harrison <[log in to unmask]> wrote:

> I was using add() and what do you know, addOrUpdate() works. There are still some hideous inefficiencies in DefaultTableXYDataset. I don't think I can use XYSeriesCollection because ChartFactory.createStackedXYAreaChart(...) expects a TableXYDataset. I'll have a look at CategoryTableXYDataset.
> 
> Thanks,
> Joey
> 
> On Tue, Jun 14, 2016 at 5:23 PM, Sean Luke <[log in to unmask]> wrote:
> On Jun 14, 2016, at 9:49 PM, Joseph F Harrison <[log in to unmask]> wrote:
> 
> > Option A) Version based on TimeTableXYDataset.
> 
> This is the wrong dataset.  Don't use it.
> 
> > Option B) Version that uses a DefaultTableXYDataset to store the data.
> 
> You might also try CategoryTableXYDataset or XYSeriesCollection.  Anyway...
> 
> > Here's what happens: DefaultTableXYDataset listens to the change event for all the XYSeries you add to it. Whenever you add a value to any series with a previously unseen x-value (e.g. x=1), it adds a dummy entry to all the other series. Then, when you try to add a value (at x=1) to another series, it sees the dummy value already there (at x=1) and throws a SeriesException: X-value already exists.
> 
> Are you using add() or are you using addOrUpdate()?  The latter would probably work, no?
> 
> Sean
> 

ATOM RSS1 RSS2