The txhousing data is available when you install and load the ggplot2 package.

library(tidyverse)
txsamp <- txhousing %>% 
  filter(city %in% c("Houston", "Fort Worth", "San Antonio", "Dallas", "Austin"))

Austin is expensive

ggplot(data = txsamp, aes(x = sales, y = median)) +
   geom_point(aes(colour = city)) + 
   scale_colour_viridis_d("City\nCenter", option = params$viridis_palette)

Austin prices on the rise

ggplot(data = filter(txsamp, city == "Austin"), aes(x = sales, y = median)) +
   geom_point(aes(colour = year)) + 
   scale_colour_viridis_c("Austin by year", option = params$viridis_palette, direction = -1) 

Fort Worth has more affordable housing

library(scales) # to make y-axis in non-scientific notation
ggplot(txsamp, aes(x = median, fill = city)) +
  geom_histogram(aes(weight = sales), position = "dodge", binwidth = 15000) +
  scale_fill_viridis_d(option = params$viridis_palette)+
  scale_y_continuous(labels = comma)

The current pace of sales is fast

“Months inventory”: amount of time it would take to sell all current listings at current pace of sales.

ggplot(data = txsamp, aes(x = year, y = inventory, colour = city)) +
  geom_point() + 
  geom_smooth(se = FALSE) +
  scale_colour_viridis_d("City\nCenter", option = params$viridis_palette) 

LS0tCnRpdGxlOiAiYHIgcGFyYW1zJGR5bmFtaWN0aXRsZWAiCmF1dGhvcjogIkFsaXNvbiBIaWxsIgpwYXJhbXM6CiAgZHluYW1pY3RpdGxlOiBUZXhhcyBIb3VzaW5nIFByaWNlcwogIHZpcmlkaXNfcGFsZXR0ZTogdmlyaWRpcwpvdXRwdXQ6CiAgaHRtbF9kb2N1bWVudDoKICAgIGhpZ2hsaWdodGVyOiBudWxsCiAgICB0aGVtZTogImZsYXRseSIKICAgIGNvZGVfZG93bmxvYWQ6IFRSVUUKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZSA9IEZBTFNFfQprbml0cjo6b3B0c19jaHVuayRzZXQod2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UpCmdncGxvdDI6OnRoZW1lX3NldChnZ3Bsb3QyOjp0aGVtZV9taW5pbWFsKCkpCmBgYAoKVGhlIGB0eGhvdXNpbmdgIGRhdGEgaXMgYXZhaWxhYmxlIHdoZW4geW91IGluc3RhbGwgYW5kIGxvYWQgdGhlIGBnZ3Bsb3QyYCBwYWNrYWdlLgoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQp0eHNhbXAgPC0gdHhob3VzaW5nICU+JSAKICBmaWx0ZXIoY2l0eSAlaW4lIGMoIkhvdXN0b24iLCAiRm9ydCBXb3J0aCIsICJTYW4gQW50b25pbyIsICJEYWxsYXMiLCAiQXVzdGluIikpCmBgYAoKIyBBdXN0aW4gaXMgZXhwZW5zaXZlCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSB0eHNhbXAsIGFlcyh4ID0gc2FsZXMsIHkgPSBtZWRpYW4pKSArCiAgIGdlb21fcG9pbnQoYWVzKGNvbG91ciA9IGNpdHkpKSArIAogICBzY2FsZV9jb2xvdXJfdmlyaWRpc19kKCJDaXR5XG5DZW50ZXIiLCBvcHRpb24gPSBwYXJhbXMkdmlyaWRpc19wYWxldHRlKQpgYGAKCiMgQXVzdGluIHByaWNlcyBvbiB0aGUgcmlzZSAKCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IGZpbHRlcih0eHNhbXAsIGNpdHkgPT0gIkF1c3RpbiIpLCBhZXMoeCA9IHNhbGVzLCB5ID0gbWVkaWFuKSkgKwogICBnZW9tX3BvaW50KGFlcyhjb2xvdXIgPSB5ZWFyKSkgKyAKICAgc2NhbGVfY29sb3VyX3ZpcmlkaXNfYygiQXVzdGluIGJ5IHllYXIiLCBvcHRpb24gPSBwYXJhbXMkdmlyaWRpc19wYWxldHRlLCBkaXJlY3Rpb24gPSAtMSkgCmBgYAoKIyBGb3J0IFdvcnRoIGhhcyBtb3JlIGFmZm9yZGFibGUgaG91c2luZwoKYGBge3J9CmxpYnJhcnkoc2NhbGVzKSAjIHRvIG1ha2UgeS1heGlzIGluIG5vbi1zY2llbnRpZmljIG5vdGF0aW9uCmdncGxvdCh0eHNhbXAsIGFlcyh4ID0gbWVkaWFuLCBmaWxsID0gY2l0eSkpICsKICBnZW9tX2hpc3RvZ3JhbShhZXMod2VpZ2h0ID0gc2FsZXMpLCBwb3NpdGlvbiA9ICJkb2RnZSIsIGJpbndpZHRoID0gMTUwMDApICsKICBzY2FsZV9maWxsX3ZpcmlkaXNfZChvcHRpb24gPSBwYXJhbXMkdmlyaWRpc19wYWxldHRlKSsKICBzY2FsZV95X2NvbnRpbnVvdXMobGFiZWxzID0gY29tbWEpCmBgYAoKIyBUaGUgY3VycmVudCBwYWNlIG9mIHNhbGVzIGlzIGZhc3QKCiJNb250aHMgaW52ZW50b3J5IjogYW1vdW50IG9mIHRpbWUgaXQgd291bGQgdGFrZSB0byBzZWxsIGFsbCBjdXJyZW50IGxpc3RpbmdzIGF0IGN1cnJlbnQgcGFjZSBvZiBzYWxlcy4KCmBgYHtyfQpnZ3Bsb3QoZGF0YSA9IHR4c2FtcCwgYWVzKHggPSB5ZWFyLCB5ID0gaW52ZW50b3J5LCBjb2xvdXIgPSBjaXR5KSkgKwogIGdlb21fcG9pbnQoKSArIAogIGdlb21fc21vb3RoKHNlID0gRkFMU0UpICsKICBzY2FsZV9jb2xvdXJfdmlyaWRpc19kKCJDaXR5XG5DZW50ZXIiLCBvcHRpb24gPSBwYXJhbXMkdmlyaWRpc19wYWxldHRlKSAKYGBgCgojIFRoYW5rcyB0by4uLgoKKyBKZW5uaWZlciBUaG9tcHNvbjogaHR0cHM6Ly9naXRodWIuY29tL2plbm5pZmVydGhvbXBzb24vUGFyYW1SbWRFeGFtcGxlCisgR2FycmV0dCBHcm9sZW11bmQ6IGh0dHBzOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tL2xlc3Nvbi02Lmh0bWwK