made color_by and range optional, made width and height parameters