Let me try and explain my thinking....
You could make a 1:1 comparison with any set of infinite numbers. For example, comparing the set of integers with the set of prime numbers, you could match up 1 with the first prime number, 2 with the second prime number..... n with the nth prime number, and so on.
But comparing infinite sets it this way makes discussion meaningless. You can't actually count-up the number of numbers in each set to find out if the comparison is valid because the infinite nature of the sets makes this impossible.
An alternate method of determining the relative sizes of different infinites is required in order to make any meaningful comparison. My way of thinking of it is to picture each number in the set placed on an infinite number line, positioned according to its value, and a different number line for each set, like this:
Your way of thinking about "densities" is not very fruitful, as not all sets lend themselves to be pictured on a line (or an area, or ...).
The standard way to compare infinite sets is by establishing functions between them.
An (infinite) set A has smaller or equal cardinality ("size") than a set B, if you can make an injective function (aka one-to-one function)
f: A -> B
Injective means that:
f(x) != f

if x != y
Two sets A and B have the same cardinality if you can make a bijective function (aka one-to-one correspondence
f: A -> B
Bijective means that the function is injective and surjective (aka onto), i.e., every element z of B is the image of an element x of A (so f(x) = z).
Then it's easy to see that the set Z of all integers has the same cardinality as the set N of natural numbers. Define the function n2z by:
n2z

= n/2 if n is even
n2z

= -(n+1)/2 if n is odd
and it's easy to see this function is a bijection.
The set Q of rational numbers can be shown to have the same cardinality as N too. Ditto for the set A of algebraic numbers.
The set R of real numbers is "bigger", though. Even the set (0,1) of real numbers between 0 and 1 is "bigger" than N. This is Cantor's famous diagonal argument. The proof goes by contradiction.
First, we observe that every real number has a unique decimal expansion - well, there's the issue of real numbers whose expansion can end in 999... or 000..., but you'll see that these doubles won't bother us.
Now suppose there is a bijective function n2r: N -> (0,1). Then we construct a real number x by defining it's decimals - x_n being the n-th decimal:
x_n = 4 if n2r

has 5 as its n-th decimal
x_n = 5 otherwise
Now obviously, the number x is different from any n2r

, as it differs from n2r

in the n-th decimal place. Therefore, n2r is not surjective and therefore not bijective.
Ergo, the real interval (0,1) has a bigger cardinality than N, and obviously, the complete set of real numbers R has a bigger cardinality than N. However, R has the same cardinality as its subset (0,1): just think of the tangens function to establish a one-to-one correspondence.