Butterflies have an astonishing sense of smell. The key is to have the plants close together. They enjoy clusters of plants over one or two. Nectar plants provide flower nectar for them to eat. Butterflies, just like us, have their favorite food but all of them enjoy a variety of plants, shrubs, vines, and trees.
Host plants provide a place for the butterflies to lay their eggs.
These include wildflowers, weeds, and grasses. Be careful here though because a butterfly will only lay its eggs on a plant that the caterpillar will eat. Like any living creature, they need refuge. The best way to do this is to plant tall vines, shrubs, or trees around you garden. If your yard is fenced in, use the fence for shelter.