accessing exportHistogramFor: aDictionary By: aTypeString "TODO: quotes and retweets" | messagesDict histogram diagram tempMessages labels subtotals | tempMessages := self perform: (aDictionary at: 'messagesType') asSymbol. tempMessages ifEmpty: [ self exportEmptyHistogramNamed: (aDictionary at: 'messagesType'), '-histogram' ]. ((((aDictionary at: 'messagesType') = 'tweets') or: [(aDictionary at: 'messagesType') = 'replies']) and: aTypeString isNumber) ifTrue: [ messagesDict := tempMessages splitBytimeSpansOf: aTypeString ]. (aTypeString = 'day' or: [ aTypeString = 'days' ]) ifTrue: [ messagesDict := tempMessages splitByDays ]. (aTypeString = 'week' or: [ aTypeString = 'weeks' ]) ifTrue: [ messagesDict := tempMessages splitByWeeks ]. (((aDictionary at: 'messagesType') = 'retweets') or: [ (aDictionary at: 'messagesType') = 'quotes' ]) ifTrue: [ messagesDict := tempMessages asMessagesUserNamesSortedByOccurrences. ((aTypeString > messagesDict size) or: [ aTypeString = 1 ]) ifFalse: [ | keysToRemove | keysToRemove := OrderedCollection new. 1 to: messagesDict size - aTypeString do: [ :i | keysToRemove add: (messagesDict keys at: i + aTypeString) ]. messagesDict removeKeys: keysToRemove. ]. labels := messagesDict keys. labels := labels collect: [ :profiles | ('@', profiles) ]. subtotals := messagesDict values ] ifFalse: [ labels := messagesDict keys. subtotals := (messagesDict values collect: [ :collection | collection size ])]. histogram := RSChart new. histogram extent: (aDictionary at: 'extent'). diagram := RSBarPlot new y: subtotals. diagram color: (aDictionary at: 'color'). histogram addPlot: diagram. histogram addDecoration: (RSHorizontalTick new fromNames: labels; labelRotation: 0; fontSize: 68 /messagesDict size; yourself). histogram addDecoration: (RSVerticalTick new integer; fontSize: 68 /messagesDict size). histogram build. ^ histogram canvas exportAsFileNamed: (aDictionary at: 'messagesType'), '-histogram' into: self folder