I think time_read is already in seconds (so in minutes would be time_read /60 and in hours would be time_read /3600)
I think if you wanted to look at a graph of the average reading time per user per day within a given timeframe, the query would look something like this:
-- [params]
-- date :start_date
-- date :end_date
SELECT
visited_at,
ROUND(AVG(time_read/60),2)::float AS total_minutes
FROM user_visits
WHERE visited_at BETWEEN :start_date AND :end_date
GROUP BY visited_at
ORDER BY visited_at
