See the vignette in the {sf} package that uses the US state of North Carolina to illustrate this class of problem. Basically, your data and the geographic features for plotting are in the same data frame and you can plot using {ggplot2}. It's as powerful as the {sp} package it replaces and much easier to use.
Come back with a new question if you have trouble installing the {sf} package. It has some system dependencies that can be tricky.