function render( state ) {
	var nOpacities;
	var nSymbols;
	var nColors;
	var opacity;
	var nSizes;
	var symbol;
	var color;
	var marks;
	var size;
	var sym;
	var len;
	var i;

	sym = state.$.svg.symbols;
	nOpacities = state.symbolsOpacity.length;
	nSymbols = state.symbols.length;
	nColors = state.colors.length;
	nSizes = state.symbolsSize.length;

	len = state.x.length;
	marks = [];

	debug( 'Rendering symbols...' );
	for ( i = 0; i < len; i++ ) {
		symbol = state.symbols[ i%nSymbols ];
		debug( 'Symbol: %s (%d).', symbol, i );

		if ( symbol === 'none' ) {
			debug( 'Symbol (%d) is `none`. Skipping...', i );
			continue;
		}
		opacity = state.symbolsOpacity[ i%nOpacities ];
		debug( 'Symbols opacity: %d (%d).', opacity, i );

		size = state.symbolsSize[ i%nSizes ];
		debug( 'Symbols size: %d (%d).', size, i );

		color = state.colors[ i%nColors ];
		debug( 'Symbols color: %s (%d).', color, i );

		sym.x = state.x[ i ];
		sym.y = state.y[ i ];
		sym.symbol = symbol;
		sym.label = state.labels[ i ] || '';
		sym.color = color;
		sym.size = size;
		sym.opacity = opacity;

		debug( 'Rendering symbols %d...', i );
		marks.push( sym.render() );
	}
	debug( 'Finished rendering symbols.' );
	return marks;
}
Renders symbols marks.

@private
@param {Object} state - state
@returns {VTree} virtual tree