True if a data x-value would land in the visible canvas range.
bool isDataXVisible(double dataX) { final cx = toCanvasX(dataX); return cx >= left && cx <= right; }