Renders the HTML representation of the element.

def render(self, **kwargs):
        """Renders the HTML representation of the element."""
        vegalite_major_version = self._get_vegalite_major_versions(self.data)

        self._parent.html.add_child(Element(Template("""
            <div id="{{this.get_name()}}"></div>
            """).render(this=self, kwargs=kwargs)), name=self.get_name())

        figure = self.get_root()
        assert isinstance(figure, Figure), ('You cannot render this Element '
                                            'if it is not in a Figure.')

        figure.header.add_child(Element(Template("""
            <style> #{{this.get_name()}} {
                position : {{this.position}};
                width : {{this.width[0]}}{{this.width[1]}};
                height: {{this.height[0]}}{{this.height[1]}};
                left: {{this.left[0]}}{{this.left[1]}};
                top: {{this.top[0]}}{{this.top[1]}};
            </style>
            """).render(this=self, **kwargs)), name=self.get_name())

        if vegalite_major_version == '1':
            self._embed_vegalite_v1(figure)
        elif vegalite_major_version == '2':
            self._embed_vegalite_v2(figure)
        elif vegalite_major_version == '3':
            self._embed_vegalite_v3(figure)
        else:
            # Version 2 is assumed as the default, if no version is given in the schema.
            self._embed_vegalite_v2(figure)