Provide food for caterpillars and choose nectar-rich plants for butterflies and you’ll have a colourful, fluttering display in your garden for many months.
While just about any flower with nectar can be a treat for butterflies (cottage garden plants in particular), it is a slightly different story for caterpillar food plants (known as host plants). In fact, most butterfly species have just a short list of host plants. This is possibly because eating leaves and stems is a trickier business, with plants evolving chemical and physical defences against this kind of munching. It may also be that caterpillars need particular chemicals from that plant to bring out their warning colouration as butterflies.
Growing host plants for caterpillars in the garden is not necessarily guaranteed to attract the relevant butterflies, but butterflies do breed in gardens, so it is worth experimenting with different host plants to see which species might find your garden suitable.
It is also worth remembering that some butterflies and caterpillars overwinter, so shelter in the garden, such as thick growths of ivy, is also important.