36 lines
1.3 KiB
Smalltalk
36 lines
1.3 KiB
Smalltalk
|
accessing
|
||
|
exportTweetsHistogramWithBars: aNumberOfBars
|
||
|
|
||
|
| timeSpans labels tweetsByTimeSpan subtotals tweetsColor x tweetsHistogram diagram |
|
||
|
timeSpans := self tweets timeSpansOf: aNumberOfBars.
|
||
|
labels := (timeSpans collect: [ :timeSpan |
|
||
|
((timeSpan start asDate asString removeSuffix: '2022'), '→ ', timeSpan end asDate asString removeSuffix: '2022')
|
||
|
]) asArray.
|
||
|
tweetsByTimeSpan := OrderedCollection new.
|
||
|
1 to: labels size do: [ :i |
|
||
|
tweetsByTimeSpan add: (self tweets messages select: [ :tweet |
|
||
|
(timeSpans at: i) includes: (tweet created asDateAndTime)])
|
||
|
].
|
||
|
subtotals := tweetsByTimeSpan collect: [ :collection | collection size ].
|
||
|
tweetsColor := (Color r:(91/255) g:(131/255) b:(222/255)).
|
||
|
x := 1 to: subtotals size.
|
||
|
tweetsHistogram := RSChart new.
|
||
|
tweetsHistogram extent: 800@200.
|
||
|
diagram := RSBarPlot new x: x y:subtotals.
|
||
|
diagram color: tweetsColor.
|
||
|
tweetsHistogram addPlot: diagram.
|
||
|
tweetsHistogram addDecoration: (RSHorizontalTick new
|
||
|
fromNames: labels;
|
||
|
labelRotation: 0;
|
||
|
fontSize: 80 /aNumberOfBars;
|
||
|
yourself).
|
||
|
tweetsHistogram addDecoration: (RSVerticalTick new
|
||
|
integer;
|
||
|
fontSize: 80 /aNumberOfBars).
|
||
|
tweetsHistogram build.
|
||
|
tweetsHistogram canvas pdfExporter
|
||
|
zoomToShapes;
|
||
|
noFixedShapes;
|
||
|
fileName: (self folder / 'trinos.pdf')fullName;
|
||
|
export.
|
||
|
^ self folder / 'trinos.pdf'
|