For the dot, disable dataSet.isDrawCirclesEnabled.
For the range, check below out. BTW, you have to understand that because you have 7 x axis values, it will draw every one of it by default. If you want fine-grained control, you need to change the renderer logic.
You can set the max range is 4, so only 4 x axis values will be displayed, otherwise you should only pass 4 data values into the chart.
/// Sets the size of the area (range on the x-axis) that should be maximum visible at once (no further zomming out allowed).
/// If this is e.g. set to 10, no more than 10 values on the x-axis can be viewed at once without scrolling.
public func setVisibleXRangeMaximum(maxXRange: CGFloat)
{
let xScale = _deltaX / maxXRange
_viewPortHandler.setMinimumScaleX(xScale)
}
/// Sets the size of the area (range on the x-axis) that should be minimum visible at once (no further zooming in allowed).
/// If this is e.g. set to 10, no less than 10 values on the x-axis can be viewed at once without scrolling.
public func setVisibleXRangeMinimum(minXRange: CGFloat)
{
let xScale = _deltaX / minXRange
_viewPortHandler.setMaximumScaleX(xScale)
}