Add feature to not show certain plots, but still show values in the legend

This commit is contained in:
Jelte Fennema 2014-07-12 17:35:21 +02:00
parent d5cf1410ed
commit 877e341ac4
3 changed files with 22 additions and 4 deletions

View File

@ -29,6 +29,7 @@ class Morris.Bar extends Morris.Grid
barOpacity: 1.0
barRadius: [0, 0, 0, 0]
xLabelMargin: 50
shown: true
# Do any size-related calculations
#
@ -90,7 +91,14 @@ class Morris.Bar extends Morris.Grid
# @private
drawSeries: ->
groupWidth = @width / @options.data.length
numBars = if @options.stacked then 1 else @options.ykeys.length
if @options.stacked
numBars = 1
else
numBars = 0
for i in [0..@options.ykeys.length]
if @hasToShow(i)
numBars += 1
barWidth = (groupWidth * @options.barSizeRatio - @options.barGap * (numBars - 1)) / numBars
barWidth = Math.min(barWidth, @options.barSize) if @options.barSize
spaceLeft = groupWidth - barWidth * numBars - @options.barGap * (numBars - 1)
@ -99,6 +107,8 @@ class Morris.Bar extends Morris.Grid
@bars = for row, idx in @data
lastTop = 0
for ypos, sidx in row._y
if not @hasToShow(sidx)
continue
if ypos != null
if zeroPos
top = Math.min(ypos, zeroPos)

View File

@ -172,7 +172,7 @@ class Morris.Grid extends Morris.EventEmitter
yval = row[ykey]
yval = parseFloat(yval) if typeof yval is 'string'
yval = null if yval? and typeof yval isnt 'number'
if yval?
if yval? and @hasToShow(idx)
if @cumulative
total += yval
else
@ -410,6 +410,10 @@ class Morris.Grid extends Morris.EventEmitter
@raphael.setSize @el.width(), @el.height()
@redraw()
hasToShow: (i) =>
@options.shown is true or @options.shown[i] is true
# Parse a date into a javascript timestamp
#
#

View File

@ -31,6 +31,7 @@ class Morris.Line extends Morris.Grid
pointStrokeColors: ['#ffffff']
pointFillColors: []
smooth: true
shown: true
xLabels: 'auto'
xLabelFormat: null
xLabelMargin: 24
@ -184,9 +185,12 @@ class Morris.Line extends Morris.Grid
drawSeries: ->
@seriesPoints = []
for i in [@options.ykeys.length-1..0]
@_drawLineFor i
if @hasToShow(i)
@_drawLineFor i
for i in [@options.ykeys.length-1..0]
@_drawPointFor i
if @hasToShow(i)
@_drawPointFor i
_drawPointFor: (index) ->
@seriesPoints[index] = []