What Is Span, Basis, and Dimension in Linear Algebra?

Two vectors, two moves, add and scale. Here's exactly how much of a space that combination can reach, why some vectors turn out to be redundant, and why the answer to 'how many did we actually need' has a name: dimension.

By Petrus Sheya

August 1, 2026 · 5 min read

Grab one arrow. Stretch it, shrink it, flip it backwards. How much of the world can you actually reach?

Not much, it turns out. Just a single straight line.

Now grab a second arrow, one that points somewhere genuinely different. Add it to any multiple of the first, in any combination you like. Suddenly you can reach every single point on an infinite plane.

That jump, from a line to an entire plane, using nothing but two moves, is the whole idea behind span, basis, and dimension. Once you see it, the formal definitions stop being scary. They're just names for things you already watched happen.


One vector, and everywhere it can take you

Say you have a vector vv. What can you build out of it, using only the two legal moves from last time, scaling and adding?

Since there's nothing to add it to yet, all you've got is scaling. Multiply vv by any number cc, positive, negative, huge, tiny, zero. Every result you get is still pointing in the same direction as vv, or exactly opposite it.

Visualizer 01

The Span of One Vector Is a Line

Slide c, or press play. Every point c·v you can ever reach lands on this one line through the origin, nothing off it, nothing missing from it.

vc·v
c·v(1.70, 0.90)
Distance from origin1.92
Reachable set1 line

Slide cc across its full range and watch the orange point crawl up and down that dashed green line. It never leaves it. It can't. There's no operation available that would push it off, because scaling a vector never rotates it.

That line is everything you can build from one vector. We give this set a name: the span of vv.


A second vector changes the game, if it points somewhere new

Here's the natural next question. What if you bring in a second vector, ww, and now you're allowed to combine c1v+c2wc_1 v + c_2 w for any numbers c1c_1 and c2c_2?

Visualizer 02

A Second Direction Changes Everything

Drag w around. As long as it does not sit on v's line, the span jumps from a single line to the entire plane.

vw
det(v, w)2.43
span{v, w}Whole plane
w(-0.7, 1.3)

Drag ww around the plane. Most places you drop it, something dramatic happens: the reachable set stops being a line and becomes the entire plane. Every point, anywhere, is some combination of vv and ww.

But drag ww back onto vv's dashed line... and the magic disappears. The plane collapses back down to a single line, the same line as before. Adding a "new" vector that isn't actually new gives you nothing.

There's a clean way to test which case you're in, using the determinant:

det(v,w)=v1w2v2w1\det(v, w) = v_1 w_2 - v_2 w_1

When this is zero, ww is just a scaled copy of vv, they're pointing along the same line. When it's nonzero, ww genuinely points somewhere else, and together they unlock the whole plane.


Naming the reachable set: span

Now we can say precisely what we've been drawing. Given any collection of vectors v1,v2,,vkv_1, v_2, \ldots, v_k, their span is every point you can reach by scaling each one and adding the results together:

span{v1,v2,,vk}={c1v1+c2v2++ckvk : c1,c2,,ckR}\text{span}\{v_1, v_2, \ldots, v_k\} = \{\, c_1 v_1 + c_2 v_2 + \cdots + c_k v_k \ : \ c_1, c_2, \ldots, c_k \in \mathbb{R} \,\}

That expression, c1v1++ckvkc_1 v_1 + \cdots + c_k v_k, is called a linear combination. Span is just "the set of all linear combinations you could ever write down." One vector spans a line. Two vectors, if neither is redundant, span a plane. Nothing more mysterious than that.


A basis: enough to reach everywhere, and none wasted

Suppose your two vectors do span the whole plane. Here's a question worth sitting with: for a given point pp, how many different ways are there to write pp as a combination of them?

Visualizer 03

A Basis Gives Every Point a Unique Address

Drag p anywhere. The skewed grid is built from e1 and e2, and there is always exactly one pair (c1, c2) that lands exactly on p.

e1e2p
c10.82
c20.58
c1·e1 + c2·e2(1.00, 1.00)

Drag pp anywhere you like. Watch c1c_1 and c2c_2 update. Now try to find a second pair of coefficients that also lands exactly on pp... you can't. There's always exactly one. The skewed grid in the background is built from e1e_1 and e2e_2, and pp sits at exactly one intersection of it, never two.

That's the second half of what makes a set of vectors special, beyond just spanning. A set that spans a space, with no redundant vectors and no vector left able to be built from the others, is called a basis. A basis isn't just "enough vectors to reach everywhere." It's the minimum needed, arranged so every point gets exactly one address in terms of them.


How many independent directions are there, really?

Last question, and it's the payoff for everything above. If you keep feeding vectors into a span, one at a time, how many of them actually do something before the rest start repeating?

Visualizer 04

Dimension Is Where the New Directions Run Out

Step through the vectors one at a time, or press play. Watch how many actually add a new direction before every extra one becomes redundant.

v1
Dimension so far1
v1New direction
Basis size1

Step through nn, or hit play. The first vector always adds a new direction, since you're starting from nothing. The second one might too, if it doesn't lie on the first vector's line... and once it does add a new direction, the span becomes the entire plane. Every vector after that, no matter how it's aimed, was already reachable. It's marked redundant, because it is.

That count, the number of genuinely new directions before everything else becomes redundant, is the dimension. For the flat plane you've been staring at this whole post, the answer is always 2. Not because we picked round numbers, but because two independent directions are all a plane has room for.

We write it as:

dim(V)=the number of vectors in any basis of V\dim(V) = \text{the number of vectors in any basis of } V

Every basis of the same space has the same size, whether it's the tidy {(1,0),(0,1)}\{(1,0), (0,1)\} or two oddly-angled arrows like e1e_1 and e2e_2 above. The count never changes. Only the vectors do.


The short version

Span is everything reachable by scaling and adding a set of vectors, one vector spans a line, a second independent one expands that to a plane. A basis is a spanning set with nothing wasted in it, which is exactly what guarantees every point gets one unique set of coordinates. Dimension is just the size of that basis, the number of genuinely independent directions a space actually has room for, and every extra vector past that number is redundant no matter which way it points.

Two moves, scale and add. A handful of vectors. And a precise answer to "how big is this space, really." That's span, basis, and dimension, in full.


All visualizations are interactive React components running entirely in your browser, built with plain SVG and no external libraries. Drag the arrows and points directly, or use the sliders and play buttons, everything recomputes instantly.