The data isn't ideal for making something exactly like what you've linked to, but you can still get close.
After unzipping the downloaded data:
library(tidyverse)
library(sf)
dallas_streets <- sf_read('unzipped_folder/')
ggplot(sample_frac(dallas_streets, .05)) + #large file, 5% used for example
geom_sf(aes(color = POSTAL_R)) +
theme(legend.position = 'none')
Should get you here:

Color palette needs to be adjusted, labels could be added, and geometries joined (or unioned) to get closer.
If you're really looking for a zip code map of Dallas, you should try to find a shapefile meant for that purpose.
A little closer:
dallas_streets %>%
sample_frac(.3) %>%
group_by(POSTAL_L) %>%
summarize(geometry = st_convex_hull(st_union(geometry))) %>%
ggplot() +
geom_sf(aes(fill = as.numeric(POSTAL_L))) +
geom_sf_text(aes(label = POSTAL_L)) +
scale_fill_viridis_c(option = "C")
group_by, then summarize for a new geometry based on unioned convex hulls gets close to the actual zip code boundaries with only 30% of the data.
