code: def calculateDatasets(self, scene, axes, datasets):
          
          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)
docs: 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>, ..]