'Maps ``point``, which can be ether a tuple of (x,y), a QPoint or a QPointF, from plot coordinates
to data coordinates.
:param point: The point in data coordinates
:type point: tuple or QPointF
:param axes: The pair of axes along which to transform the point. If none are specified, (xBottom, yLeft) will be used.
:type axes: tuple of float float
:param zoom: if ``True``, the current :attr:`zoom_transform` will be considered in the transformation, and the ``point`` should be in scene coordinates instead.
:type zoom: int
:returns: The transformed point in data coordinates
:rtype: tuple of float float'

def map_from_graph(self, point, axes=None, zoom=False):

    if (type(point) == tuple):
        (x, y) = point
        point = QPointF(x, y)
    if zoom:
        (t, ok) = self._zoom_transform.inverted()
        point = (point * t)
    if axes:
        (x_id, y_id) = axes
        (t, ok) = self.transform_for_axes(x_id, y_id).inverted()
    else:
        (t, ok) = self.map_transform.inverted()
    ret = (point * t)
    return (ret.x(), ret.y())
