projects
/
selectricity-live
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Turn Borda Bar graph on its side.
[selectricity-live]
/
app
/
controllers
/
graph_controller.rb
diff --git
a/app/controllers/graph_controller.rb
b/app/controllers/graph_controller.rb
index f956c0bf665890e9962c549739fd1bbe28d99b4c..bd11174757fe141495bea3eb1510dea37d458626 100644
(file)
--- a/
app/controllers/graph_controller.rb
+++ b/
app/controllers/graph_controller.rb
@@
-1,9
+1,16
@@
+# Selectricity: Voting Machinery for the Masses
+# Copyright (C) 2007, 2008 Benjamin Mako Hill <mako@atdot.cc>
+# Copyright (C) 2007 Massachusetts Institute of Technology
+#
+# This program is free software. Please see the COPYING file for
+# details.
+
require 'date'
class GraphController < ApplicationController
class GruffGraff
require 'date'
class GraphController < ApplicationController
class GruffGraff
- COLORS = ['#74CE00', '#005CD9', '#DC0D13', '#131313', '#A214A4', 'EFF80E',
- '
90E5E6', 'F58313', '437D3D', '
0E026C']
+ COLORS = ['#74CE00', '#005CD9', '#DC0D13', '#131313', '#A214A4', '
#
EFF80E',
+ '
#90E5E6', '#F58313', '#437D3D', '#
0E026C']
BACKGROUND_COLORS = ['#74CE00', '#FFFFFF'] #for green and white background
def initialize(options)
BACKGROUND_COLORS = ['#74CE00', '#FFFFFF'] #for green and white background
def initialize(options)
@@
-46,6
+53,7
@@
class GraphController < ApplicationController
end
else #one dimensional array, just pass it in
@graph.data( options.fetch(:data_name, "Data"), options[:data] )
end
else #one dimensional array, just pass it in
@graph.data( options.fetch(:data_name, "Data"), options[:data] )
+ @graph.hide_legend = true
end
# set the labels or create an empty hash
end
# set the labels or create an empty hash
@@
-88,6
+96,8
@@
class GraphController < ApplicationController
@election = Election.find(params[:id])
data, labels, scale = get_votes_per_interval_data(@election)
@election = Election.find(params[:id])
data, labels, scale = get_votes_per_interval_data(@election)
+ hide_legend = true
+
graph = GruffGraff.new( :graph_type => Gruff::Line,
:data_name => @election.name,
:data => data,
graph = GruffGraff.new( :graph_type => Gruff::Line,
:data_name => @election.name,
:data => data,
@@
-110,7
+120,9
@@
class GraphController < ApplicationController
data, labels = get_borda_points(@election.borda_result)
size = "400x300"
data, labels = get_borda_points(@election.borda_result)
size = "400x300"
- size = "580x300" if @election.candidates.size >= 5
+ #size = "580x300" if @election.candidates.size >= 5
+ size = sprintf "580x%d", @election.candidates.size*22 \
+ if @election.candidates.size >= 5
if @election.candidates.size >= 5
marker_font_size = 17
if @election.candidates.size >= 5
marker_font_size = 17
@@
-118,7
+130,7
@@
class GraphController < ApplicationController
marker_font_size = 20
end
marker_font_size = 20
end
- graph = GruffGraff.new( :graph_type => Gruff::Bar,
+ graph = GruffGraff.new( :graph_type => Gruff::
Side
Bar,
:data_name => @election.name,
:data => data,
:interval_labels => labels,
:data_name => @election.name,
:data => data,
:interval_labels => labels,
@@
-126,8
+138,8
@@
class GraphController < ApplicationController
:title => "Points Per Candidate",
:marker_color => '#999999',
:marker_font_size => marker_font_size,
:title => "Points Per Candidate",
:marker_color => '#999999',
:marker_font_size => marker_font_size,
- :
y
_axis_label => "Points",
- :
x
_axis_label => "Candidates")
+ :
x
_axis_label => "Points",
+ :
y
_axis_label => "Candidates")
send_data(*graph.output)
end
#Acording to Tufte, small, concomparitive, highly labeled data sets usually
send_data(*graph.output)
end
#Acording to Tufte, small, concomparitive, highly labeled data sets usually
@@
-168,9
+180,22
@@
class GraphController < ApplicationController
@election.plurality_result.points.each do |candidate, votes|
data[names[candidate]] = votes
end
@election.plurality_result.points.each do |candidate, votes|
data[names[candidate]] = votes
end
-
+ size = "400x300"
+ size = "520x300" if @election.candidates.size >= 8
+
+ if @election.candidates.size >= 8
+ marker_font_size = 20
+ legend_font_size = 17
+ else
+ marker_font_size = 17
+ legend_font_size = 17
+ end
+
pie = GruffGraff.new( :graph_type => Gruff::Pie,
:title => "Percentage of First Place Votes",
pie = GruffGraff.new( :graph_type => Gruff::Pie,
:title => "Percentage of First Place Votes",
+ :size => size,
+ :marker_font_size => marker_font_size,
+ :legend_font_size => legend_font_size,
:data => data)
send_data(*pie.output)
:data => data)
send_data(*pie.output)
Benjamin Mako Hill
||
Want to submit a patch?