teunbrand / ggh4x

ggplot extension: options for tailored facets, multiple colourscales and miscellaneous
https://teunbrand.github.io/ggh4x/
Other
534 stars 32 forks source link

facet_wrap2 adding wrong x axis labels #140

Closed manschmi2 closed 5 months ago

manschmi2 commented 6 months ago

df <- data.frame( xcat=c('A', 'A', 'C', 'A', 'B', 'C'), yval=1:6, facet=rep(c('y1', 'y2', 'y3'),2))

works as intended

ggplot(df) + geom_point(aes(x=xcat, y=yval)) + facet_wrap2(~facet, ncol=3, scales='free_x')

mis-labels facet y2

ggplot(df) + geom_point(aes(x=xcat, y=yval)) + facet_wrap2(~facet, ncol=2, scales='free_x')

Close-your-eyes commented 5 months ago

I noticed a similar thing. (Just in case another examples helps):


df <- tibble::tribble(
  ~sample,             ~pathogen,       ~n, ~detected_by_Illumina_app,
  "Exuberant Bovid",      "Yellow Cricket",    1599L,                      TRUE,
  "Prickly Jay",   "Cloudy Chimpanzee",     864L,                     FALSE,
  "Wandering Spider",     "Quarrelsome Fox",       6L,                     FALSE,
  "Giddy Nightingale",     "Aromatic Ocelot",       2L,                     FALSE,
  "Divergent Mastodon",   "Woebegone Crawdad",    4789L,                      TRUE,
  "Ad Vaquita",      "Yellow Cricket",     637L,                      TRUE,
  "Wandering Spider",         "Pricey Pony",       3L,                     FALSE,
  "Unwieldy Weasel",   "Cloudy Chimpanzee",       1L,                     FALSE,
  "Unequal Bee",   "Woebegone Crawdad",     588L,                      TRUE,
  "Overt Pony",      "Yellow Cricket",    2258L,                      TRUE,
  "Divergent Mastodon",       "Brawny Numbat",   13605L,                     FALSE,
  "Seemly Leopard",       "Physical Mite",    1767L,                      TRUE,
  "Kindly Snipe",         "Pricey Pony",       9L,                     FALSE,
  "Lowly Bovid", "Complete Salamander",     310L,                      TRUE,
  "Humorous Mastodon",      "Steadfast Mole",      84L,                      TRUE,
  "Unequal Bee",        "Spiky Dragon",     130L,                      TRUE,
  "Unwieldy Weasel",     "Decorous Muskox",    8234L,                     FALSE,
  "Perpetual Wolf",      "Steadfast Mole",      81L,                      TRUE,
  "Standing Basilisk",      "Yellow Cricket",     834L,                     FALSE,
  "Prickly Jay",          "Cagey Zebu",     169L,                      TRUE,
  "Pumped Ostrich",       "Brawny Numbat",      21L,                     FALSE,
  "Unequal Bee",      "Shocking Raven",       1L,                     FALSE,
  "Perpetual Wolf",     "Decorous Muskox",   44287L,                     FALSE,
  "Standing Basilisk",     "Quixotic Wombat",      52L,                     FALSE,
  "Annoying Kiwi",       "Brawny Numbat",     450L,                     FALSE,
  "Unwieldy Weasel",  "Dysfunctional Titi",       2L,                     FALSE,
  "Flowery Booby", "Complete Salamander",   17245L,                      TRUE,
  "Strange Cuckoo",      "Yellow Cricket",     236L,                      TRUE,
  "Exuberant Bovid",         "Misty Swift",       1L,                     FALSE,
  "Historical Minnow",     "Decorous Muskox", 2152963L,                      TRUE,
  "Stimulating Kangaroo",        "Spiky Dragon",       3L,                     FALSE,
  "Agonizing Raccoon",     "Decorous Muskox",   24953L,                     FALSE,
  "Scattered Caribou",      "Steadfast Mole",     194L,                      TRUE,
  "Seemly Leopard",     "Quixotic Wombat",      12L,                     FALSE,
  "Elegant Human",          "Cagey Zebu",       5L,                     FALSE,
  "Wild Egret",     "Quixotic Wombat",       1L,                     FALSE
)
ggplot(df, aes(x = sample, y = n)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1), legend.title = element_text()) +
  ggh4x::facet_wrap2(vars(pathogen), scales = "free")

check the facet "Steadfast Mole" which has wrong x-axis labels.

ggplot(df, aes(x = sample, y = n)) +
  geom_col() +
  theme(axis.text.x = element_text(angle = 30, hjust = 1, vjust = 1), legend.title = element_text()) +
  facet_wrap(vars(pathogen), scales = "free")
teunbrand commented 5 months ago

Thanks both for reporting! I'll try to crank out a patch release sometime this week

teunbrand commented 5 months ago

Fixed by https://github.com/teunbrand/ggh4x/commit/53b923ce74106fa225e2a28ef76a78b4fd0e79fe