PostgreSQL's main types cover numbers, text, and dates and times. It also stores binary data and JSON. Arrays, UUIDs and network addresses have their own types too.
Whole numbers use integer or bigint. Exact decimals use numeric, also spelled decimal, and approximate values use real or double precision.
Text uses char, varchar or text. Unlike in some other database systems, char has no speed advantage in PostgreSQL.
Dates and times use date, time and timestamp, and spans of time use interval.
boolean holds true or false, and bytea holds binary data.
json keeps JSON as plain text, while jsonb stores it in a binary form that is faster to query.
Arrays can hold any data type, uuid stores universally unique identifiers, and inet and cidr store IP addresses.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.