Good host plants attract butterflies. Adults seek out these plants to lay their eggs, and newly hatched caterpillars feed on the plants. Dill, parsley, rue, fennel, lupine, foxglove, and nasturtium make excellent hosts. You must be willing to sacrifice a bit of these plants, though. Adult butterflies are very picky about their diet.
Nectar plants are their food of choice.
Plant a variety of perennials and annuals for continuous bloom throughout the season. Arrange them in large groupings to better attract butterflies. Perennials may include aster, rudbeckia, butterfly weed, coreopsis, daylilies, sedum, lantana, and yarrow. Annuals such as cosmos, marigolds, petunia, pinks, sunflowers, and zinnia also are favorites. Shrubs such as lavender, buddleia, rhododendron, honeysuckle, lilac, and gooseberry are popular, as are maple, apple, and willow trees.