Builds the datasets for this renderer.  Each renderer will need to
        subclass and implemenent this method, otherwise, no data will be
        shown in the chart.
        
        :param      scene | <XChartScene>
                    axes | [<
                    datasets | [<XChartDataset>, ..]

def calculateDatasets(self, scene, axes, datasets):
        """
        Builds the datasets for this renderer.  Each renderer will need to
        subclass and implemenent this method, otherwise, no data will be
        shown in the chart.
        
        :param      scene | <XChartScene>
                    axes | [<
                    datasets | [<XChartDataset>, ..]
        """
        items = self.calculateDatasetItems(scene, datasets)
        if not items:
            scene.clear()
            return
        
        rect = self.buildData('axis_rect')
        
        for dataset, item in items.items():
            first = True
            pos = None
            home = None
            ellipses = []
            
            path = QPainterPath()
            for value in dataset.values():
                pos = self.pointAt(axes, value)
                ellipses.append(pos)
                
                if first:
                    path.moveTo(pos)
                    first = False
                else:
                    path.lineTo(pos)
            
            item.setPath(path)
            item.setBuildData('ellipses', ellipses)