lib/SVG/Graph/BarBase.rb in svg-graph-2.1.3 vs lib/SVG/Graph/BarBase.rb in svg-graph-2.2.0.beta
- old
+ new
@@ -26,36 +26,40 @@
# In addition to the defaults set in Graph::initialize, sets
# [bar_gap] true
# [stack] :overlap
def set_defaults
- init_with( :bar_gap => true, :stack => :overlap )
+ init_with( :bar_gap => true, :stack => :overlap, :show_percent => false, :show_actual_values => true)
end
# Whether to have a gap between the bars or not, default
# is true, set to false if you don't want gaps.
attr_accessor :bar_gap
# How to stack data sets. :overlap overlaps bars with
# transparent colors, :top stacks bars on top of one another,
# :side stacks the bars side-by-side. Defaults to :overlap.
attr_accessor :stack
+ # If true, display the percentage value of each bar. Default: false
+ attr_accessor :show_percent
+ # If true, display the actual field values in the data labels. Default: true
+ attr_accessor :show_actual_values
protected
-
+
# space in px between x-labels, we override the Graph version because
# we need the extra space (i.e. don't subtract 1 from get_x_labels.length)
def field_width
- # don't use -1 otherwise bar is out of bounds
+ # don't use -1 otherwise bar is out of bounds
@graph_width.to_f / ( get_x_labels.length )
end
-
+
def max_value
@data.collect{|x| x[:data].max}.max
end
def min_value
min = 0
- if min_scale_value.nil?
+ if min_scale_value.nil?
min = @data.collect{|x| x[:data].min}.min
# by default bar should always start from zero unless there are negative values
min = min > 0 ? 0 : min
else
min = min_scale_value
@@ -68,76 +72,76 @@
/* default fill styles for multiple datasets (probably only use a single dataset on this graph though) */
.key1,.fill1{
fill: #ff0000;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 0.5px;
+ stroke-width: 0.5px;
}
.key2,.fill2{
fill: #0000ff;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key3,.fill3{
fill: #00ff00;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key4,.fill4{
fill: #ffcc00;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key5,.fill5{
fill: #00ccff;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key6,.fill6{
fill: #ff00ff;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key7,.fill7{
fill: #00ffff;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key8,.fill8{
fill: #ffff00;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key9,.fill9{
fill: #cc6666;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key10,.fill10{
fill: #663399;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key11,.fill11{
fill: #339900;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
.key12,.fill12{
fill: #9966FF;
fill-opacity: 0.5;
stroke: none;
- stroke-width: 1px;
+ stroke-width: 1px;
}
EOL
end
end
end