function updateEl(el, dataIndex, elOption, animatableModel, data, isInit) {
	        var targetProps = {};
	        var elOptionStyle = elOption.style || {};

	        elOption.shape && (targetProps.shape = zrUtil.clone(elOption.shape));
	        elOption.position && (targetProps.position = elOption.position.slice());
	        elOption.scale && (targetProps.scale = elOption.scale.slice());
	        elOption.origin && (targetProps.origin = elOption.origin.slice());
	        elOption.rotation && (targetProps.rotation = elOption.rotation);

	        if (el.type === 'image' && elOption.style) {
	            var targetStyle = targetProps.style = {};
	            zrUtil.each(['x', 'y', 'width', 'height'], function (prop) {
	                prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);
	            });
	        }

	        if (el.type === 'text' && elOption.style) {
	            var targetStyle = targetProps.style = {};
	            zrUtil.each(['x', 'y'], function (prop) {
	                prepareStyleTransition(prop, targetStyle, elOptionStyle, el.style, isInit);
	            });
	        }

	        if (el.type !== 'group') {
	            el.useStyle(elOptionStyle);

	            // Init animation.
	            if (isInit) {
	                el.style.opacity = 0;
	                var targetOpacity = elOptionStyle.opacity;
	                targetOpacity == null && (targetOpacity = 1);
	                graphicUtil.initProps(el, {style: {opacity: targetOpacity}}, animatableModel, dataIndex);
	            }
	        }

	        if (isInit) {
	            el.attr(targetProps);
	        }
	        else {
	            graphicUtil.updateProps(el, targetProps, animatableModel, dataIndex);
	        }

	        // z2 must not be null/undefined, otherwise sort error may occur.
	        el.attr({z2: elOption.z2 || 0, silent: elOption.silent});

	        elOption.styleEmphasis !== false && graphicUtil.setHoverStyle(el, elOption.styleEmphasis);
	    }
@public
@param {Object} opt
@param {string} [opt.fontStyle]
@param {number} [opt.fontWeight]
@param {number} [opt.fontSize]
@param {string} [opt.fontFamily]
@return {string} font string