           else
             avatar_style = _.extend {}, regular_avatar_style
 
-          if has_groups 
-            group = @props.groups[user.key]?[0]
-            if group 
+          if has_groups && @props.groups[user.key]?
+            if @props.groups[user.key].length == 1
+              group = @props.groups[user.key][0]
               avatar_style.backgroundColor = colors[group]
+            else 
+              gcolors = []
+              for group in @props.groups[user.key]
+                gcolors.push colors[group]
+              gradient = ""
+              size = 1 / gcolors.length / 8
+              for gcolor,idx in gcolors
+                gradient += ", #{gcolor} #{100 * idx * size}%, #{gcolor} #{100 * (idx + 1) * size}%"
+
+              avatar_style.background = "repeating-linear-gradient(45deg #{gradient})"
+
+          if @props.backgrounded
+            avatar_style = _.extend {}, backgrounded_page_avatar_style
 
           pos = @props.histocache?.positions?[user.key]
 

    delete opinion_views.active_views.point_includers
  save opinion_views


window.Histogram = ReactiveComponent
  displayName : 'Histogram'

        user_key = ev.target.getAttribute('data-user')
        user_opinion = _.findWhere @opinions, {user: user_key}

        if user_opinion
          is_deselection = (single_selection?.opinion == user_opinion.key || @weights[user_key] == 0 ) 
          if is_deselection
            clear_histogram_managed_opinion_views opinion_views
          else 
            select_single_opinion user_key, @opinions, @props.key

      else
        max = @local.mouse_opinion_value + REGION_SELECTION_WIDTH
        min = @local.mouse_opinion_value - REGION_SELECTION_WIDTH
