Socialmetrica/Socialmetrica.package/NitterUser.class/instance/exportRetweetsHistogramWithBars..st

41 lines
1.3 KiB
Smalltalk

accessing
exportRetweetsHistogramWithBars: aNumberOfBars
| keysToRemove retweets labels retweetsHistogram diagram |
retweets := self retweetsSortedByOccurrences.
(aNumberOfBars > retweets size) ifTrue: [ ^ self exportRetweetsHistogram ].
keysToRemove := OrderedCollection new.
1 to: retweets size - aNumberOfBars do:
[ :i | keysToRemove add: (retweets keys at: i + aNumberOfBars) ].
retweets removeKeys: keysToRemove.
labels := retweets keys.
labels := labels collect: [ :profiles | ('@', profiles) ].
retweetsHistogram := RSChart new.
retweetsHistogram extent: 800@200.
diagram := RSBarPlot new
x: (1 to: retweets size)
y: retweets values.
diagram color: (Color r:(217/255) g:(56/255) b: (124/255)).
retweetsHistogram addPlot: diagram.
retweetsHistogram addDecoration: (RSHorizontalTick new
fromNames: labels;
labelRotation: 0;
fontSize: 72 /retweets size;
yourself).
retweetsHistogram addDecoration: (RSVerticalTick new
integer;
fontSize: 72 /retweets size).
retweetsHistogram build.
retweetsHistogram canvas pdfExporter
zoomToShapes;
noFixedShapes;
fileName: (self folder / 'retweets-histogram.pdf')fullName;
export.
retweetsHistogram canvas pngExporter
zoomToShapes;
noFixedShapes;
fileName: (self folder / 'retweets-histogram.png')fullName;
export.
^ self folder / 'retweets-histogram.png'