 			for (var i:int = 0; i < recordKeys.length; i++)
 				binIndexMap[ binnedColumn.getValueFromKey(recordKeys[i], Number) ] = 1;
 			
-			var margin:int = 4;
-			var height:Number = screenBounds.getYCoverage() / dataBounds.getYCoverage();			
-			var actualShapeSize:Number = Math.max(7, Math.min(shapeSize.value,(height - margin)/numBins));
-			var iconGap:Number = actualShapeSize + margin * 2;
-			var circleCenterOffset:Number = margin + actualShapeSize / 2; 
+			var _shapeSize:Number = shapeSize.value;
+			if (shapeType.value != SHAPE_TYPE_LINE)
+				_shapeSize = Math.max(1, Math.min(_shapeSize, screenBounds.getYCoverage() / numBins));
+			var xShapeOffset:Number = _shapeSize / 2; 
 			var stats:IColumnStatistics = WeaveAPI.StatisticsCache.getColumnStatistics(getInternalColorColumn().internalDynamicColumn);
 			statsWatcher.target = stats;
 			var internalMin:Number = stats.getMin();

		public const shapeType:LinkableString = registerLinkableChild(this, new LinkableString(SHAPE_TYPE_CIRCLE, verifyShapeType));
		public static const SHAPE_TYPE_CIRCLE:String = 'circle';
		public static const SHAPE_TYPE_SQUARE:String = 'square';
		public static const ENUM_SHAPE_TYPE:Array = [SHAPE_TYPE_CIRCLE, SHAPE_TYPE_SQUARE];
		private function verifyShapeType(value:String):Boolean { return ENUM_SHAPE_TYPE.indexOf(value) >= 0; }
		
		/**

				destination.fillRect(tempRectangle, 0x02808080);
				
				// draw the text
				LegendUtils.renderLegendItemText(destination, _binToString[iBin], tempBounds, _shapeSize + labelGap);

				// draw circle
				var iColorIndex:int = ascendingOrder.value ? iBin : (binCount - 1 - iBin);
