On Nov 5, 2014, at 7:30 PM, Chris Cunningham <cunningham.cb@gmail.com> wrote:_______________________________________________On Wed, Nov 5, 2014 at 9:28 AM, Alexandre Bergel <alexandre.bergel@me.com> wrote:[snip][snip]Something like this is not enough?Cheers,AlexandreWell, I usually think of the lined graph as impying a continuity between the points; I want to state that it happened at a specific time, with nothing in between. I also kinda like the bars in that is draws attention to them; the dots are to easy to overlook (especially the color, to my eyes).So, I've taken some of these ideas and gotten the timing down better, and applied alpha so that I can see overlapping bars. This might be good enough for now, at least for me.-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=data := {Dictionary newat: 'COLOR' put: Color gray;at: 'TIME' put: (DateAndTime fromString: '2014-10-30 12:11:28.0');at: 'SECONDS' put: 4;yourself.Dictionary newat: 'COLOR' put: Color gray;at: 'TIME' put: (DateAndTime fromString: '2014-10-31 12:11:28.0');at: 'SECONDS' put: 5;yourself.Dictionary newat: 'COLOR' put: Color red;at: 'TIME' put: (DateAndTime fromString: '2014-10-31 12:41:28.0');at: 'SECONDS' put: 15;yourself.Dictionary newat: 'COLOR' put: Color green;at: 'TIME' put: (DateAndTime fromString: '2014-11-01 12:11:28.0');at: 'SECONDS' put: 7;yourself.Dictionary newat: 'COLOR' put: Color gray;at: 'TIME' put: (DateAndTime fromString: '2014-11-02 12:11:28.0');at: 'SECONDS' put: 1;yourself.Dictionary newat: 'COLOR' put: Color gray;at: 'TIME' put: (DateAndTime fromString: '2014-11-03 12:11:28.0');at: 'SECONDS' put: 4;yourself.}.oldestEntryDate := (data collect: [ :entry | (entry at: 'TIME') asDate asDateAndTime asUnixTime ]) min.newestEntryDate := (data collect: [ :entry | (entry at: 'TIME') asUnixTime ]) max.newestEntryDate = (DateAndTime fromUnixTime: newestEntryDate) asTime seconds = 0 ifFalse: [newestEntryDate := ((DateAndTime fromUnixTime: newestEntryDate) asDate + 1 day) asDateAndTime asUnixTime.data := data copyWith: (Dictionary new at: 'COLOR' put: Color white; at: 'TIME' put: (DateAndTime fromUnixTime: newestEntryDate); at: 'SECONDS' put: 0; yourself).].ticks := (newestEntryDate - oldestEntryDate) asDuration asDays asInteger * 4.b := RTCharterBuilder new.b extent: 300 @ 200.b interactionpopupText: [:entry | (entry at: 'TIME') asString, ' took ', (entry at: 'SECONDS') asString, ' seconds'];highlightColored: Color blue.b shape rectangle color: [ :entry | (entry at: 'COLOR' ) alpha: 0.6]; size: 0.b points: data.b y: [ :entry | entry at: 'SECONDS' ].b allX: [ :v | (v at: 'TIME') asUnixTime - oldestEntryDate ].b histogramWithBarTitle: [ :entry | '' ].b axisY.b axisConfigurationtitle: '';labelRotation: -30;numberOfTicks: ticks;numberOfLabels: ticks;labelConvertion: [ :v | |lbl|lbl := DateAndTime fromUnixTime: v + oldestEntryDate.lbl asTime asSeconds = 0 ifTrue: [ lbl asDate ] ifFalse: [ '' ]].b axisX.b build.b view-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=<image.png>And, incidentally, I'm really enjoying the playground. Great fun!-cbc
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev