How to imagine vector spaces (and projective spaces) over a finite field

Since your question specifically mentions projective planes, let's suppose that we have the three-dimensional vector space $V = \Bbb F_q^3$ over $\Bbb F_q$, the finite field with $q$ elements (that is, $GF(q)$ in your notation).

One-dimensional subspaces
Let's start with the fact that a one-dimensional subspace $L$ has the form $L = \{c \mathbf{v} : c \in \Bbb F_q\}$; it consists of all scalar multiples of some vector $\mathbf{v} \in V$. In particular, there are as many points in $L$ as there are scalars in $\Bbb F_q$: there are $q$ of them, and $q - 1$ are nonzero.

But as you've pointed out, there aren't as many one-dimensional subspaces of $V$ as there are nonzero vectors in $V$ (when $V$ is finite, at least); two vectors $\mathbf{v}_1$ and $\mathbf{v}_2 $ determine the same subspace when they are scalar multiples of each other. Put another way, any of the $q - 1$ nonzero vectors in a one-dimensional subspace $L$ generate (in the sense of the "span of a set of vectors") $L$.

Thus, by counting nonzero vectors in $V$, we've overcounted one-dimensional subspaces by a factor of $q - 1$, so there are

$$\frac{q^3 - 1}{q - 1} = 1 + q + q^2$$

one dimensional subspaces of the three-dimensional vector space over $\Bbb F_q$. In your projective plane example, we have $q = 3$ for a total of $1 + 3 + 9 = 13\ \checkmark$ one-dimensional subspaces of $V$, or points in the projective plane.

Two-dimensional Subspaces
To think about lines in the picture, we need to understand two-dimensional subspaces of $\Bbb F_3^3$. Every pair of nonzero vectors $\mathbf{v}, \mathbf{w}$ where $\mathbf{v} \neq c \mathbf{w}$ determines a two-dimensional subspace of the form $P = \{c_1 \mathbf{v} + c_2 \mathbf{w} : c_1, c_2 \in \Bbb F_q\}$. This subspace contains $q^2$ vectors, and $q^2 - 1$ of them are nonzero. As we noted above, not all pairs of vectors in $P$ generate $P$: we must be careful that they do not lie on the same one-dimensional subspace. We can pick any nonzero vector in $P$ to start, and then any vector not in the span of the first; there are $(q^2 - 1)(q - 1)$ pairs $(\mathbf{v}, \mathbf{w})$ that span $P$.

To count two-dimensional subspaces, we pick two nonzero vectors in $V$ not lying in the same one-dimensional subspace, and then take care of overcounting that arises due to multiple ways to generate the same plane: there are

$$\frac{(q^3 - 1)(q^3 - q)}{(q^2 - 1)(q^2 - q)} = 1 + q + q^2$$

two-dimensional subspaces of three-dimensional $V$, the same number of one-dimensional subspaces! Food for thought: wouldn't it be nice if there was a "natural" bijection between the one- and two-dimensional subspaces, in our three-dimensional space?

Specific one-dimensional subspaces
To list the points of this projective plane, we can list $13$ vectors in $\Bbb F_3^3$ that don't lie (pairwise) in the same one-dimensional subspace:

\begin{array}{lll} (c, 0, 0), & (0, c, 0), & (0, 0, c) \\ (0, c, c), & (c, 0, c), & (c, c, 0) \\ (0, 2c, c), & (2c, 0, c), & (2c, c, 0) \\ (c, c, 2c), & (c, 2c, c), & (c, c, 2c) \\ & (c, c, c), & \\ \end{array}

where here $(2c, c, c)$ means $\{c(2, 1, 1) : c \in \Bbb F_3\}$.

To get some experience with vector spaces over finite fields, you should actually write out elements in some of these subspaces, and convince yourself that all $26$ nonzero vectors of $\Bbb F_3^3$ live in exactly one of these one-dimensional subspaces.

Specific two-dimensional subspaces
These are messier. It's easy to pick two linearly independent vectors $\mathbf{v}, \mathbf{w}$ and write some subspaces $\operatorname{Span}(\{\mathbf{v}, \mathbf{w}\})$, but listing them all, and without repeats, is a bit tedious (and not exactly easy!).

Instead, recall that two-dimensional subspaces can always be described as the solution set to a linear equation $\{(x, y, z) : ax + by + cz = 0\}$ (just like you're used to with vector spaces over $\Bbb R$), and each such equation is "uniquely" determined by a vector $(a, b, c)$ normal to the subspace. This is great, because we just computed all the one-dimensional subspaces! With a bit of work, we can write down what generic elements in our two-dimensional subspaces look like:

\begin{array}{lll} (0, a, b), & (a, 0, b), & (a, b, 0) \\ (b, a, 2a), & (a, b, 2a), & (a, 2a, b) \\ (b, a, a), & (a, b, a), & (a, a, b) \\ (a, b, a + b), & (a, a+b, b), & (a+b, a, b) \\ & (a, b, 2a + 2b), & \\ \end{array}

where, for instance, $(a, b, a)$ represents the subspace $\{a(1, 0, 1) + b(0, 1, 0) : a, b \in \Bbb F_3\}$. Additionally, it's in the same place as $(2c, 0, c)$ in the previous table. This signifies that the subspaces are orthogonal: $(2c, 0, c) \cdot (a, b, a) = 2ac + ac = 3ac \equiv 0 \pmod 3$.

Again to build familiarity, it would be good to pick a subspace or two and write out all vectors in these subspaces, as well as the one-dimensional subspaces it contains.

The good news here is that projective planes have lots of symmetry (in fact, yours has 5616 automorphisms!); you can start building a correspondence between vectors and points in the image freely, although before long, you will have to be careful about how you're constructing things (to make sure points on the same line correspond to one-dimensional subspaces in a common two-dimensional subspace). It's probably better to create the image from scratch, using the picture as a guide for what should happen.

A note of caution
I didn't write out things for a general $n$-dimensional vector space, because things get more complicated. Another source of difficulty is the structure of $GF(p^n)$ for prime $p$ and $n > 1$. When you're working over $GF(p)$ for prime $p$, things are nice: You're just working in the ring $\Bbb Z /p\Bbb Z$, doing arithmetic modulo $p$. But this stops being the case in $GF(p^n)$, and I personally don't know how to work "quickly" in such a field, which is often constructed as a quotient of the polynomial ring $GF(p)[X]$ by an irreducible polynomial of degree $n$.

Hopefully you've played around with the Fano plane too, things are very nice there!


There are some decisions to be made when we think of writing representatives for points in a finite projective plane, because in general each point has more than one representing vector. For this reason, we usually represent the points with vectors that have been scaled to have a "1" as the first nonzero entry (or maybe as the last nonzero entry in some books). To make it clear that we mean this to represent a subspace, two common notations are to use angled brackets (to refer to the span of a vector) as in $$\langle (1,0,0) \rangle$$ or to use what are known as homogeneous coordinates; these are usually written with colons between the entries such as $$(1:0:0)$$ and the convention is that we ignore differences of a scalar multiple. Because there are so many symmetries of a finite projective plane, you can choose any three points (that are not all on the same line) to label $\langle (1,0,0) \rangle$, $\langle (0,1,0) \rangle$, $\langle (0,0,1) \rangle$.

Now when you want to fill in vector representatives for the other points, just work on filling them in. For example, the line containing $\langle (1,0,0) \rangle$ and $\langle (0,1,0) \rangle$ would be denoted $\langle (1,0,0), (0,1,0) \rangle$; it contains vectors represented by linear combinations of these two vectors, so we see that the other two points we need to fill in are $\langle (1,1,0) \rangle$ and $\langle (1,2,0) \rangle$. We can get unique representatives from the line $\langle \bf{u}, \bf{v} \rangle$ by considering the vectors $\{\bf{v}\} \cup \{\bf{u} + \lambda \bf{v} \ : \ \lambda \in \mathbb{F} \}$ (we would then scale each vector if necessary to make the first nonzero entry equal to 1).

For the most part you can choose which points to label with which coordinates in the beginning, as you work further in you may have to set up a system with a few linear equations and then solve it to make sure your labelings are consistent.