Skip to content

Commit d3528e1

Browse files
committed
Fix x-axis data/label for bar graphs
1 parent 5842e87 commit d3528e1

File tree

2 files changed

+7
-3
lines changed

2 files changed

+7
-3
lines changed

R/trace_generation.R

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ layer2traces <- function(l, d, misc) {
2121
barmode <- "group"
2222
if (g$geom == "bar" || g$geom == "histogram") {
2323
if (l$stat$objname == "bin") {
24-
bargap <- 0
2524
if (g$geom != "histogram") {
2625
warning("You may want to use geom_histogram.")
2726
}
@@ -67,16 +66,18 @@ layer2traces <- function(l, d, misc) {
6766
"%Y-%m-%d %H:%M:%S")
6867
} else if (inherits(data.vec, "factor")) {
6968
## Re-order data so that Plotly gets it right from ggplot2.
70-
g$data <- g$data[order(g$data[[a]]),]
69+
g$data <- g$data[order(g$data[[a]]), ]
7170
data.vec <- data.vec[match(g$data[[a]], as.numeric(data.vec))]
72-
g$prestats.data <- g$prestats.data[order(g$prestats.data[[a]]),]
71+
g$prestats.data <- g$prestats.data[order(g$prestats.data[[a]]), ]
7372
pdata.vec <- pdata.vec[match(g$prestats.data[[a]],
7473
as.numeric(pdata.vec))]
7574
if (length(pdata.vec) == length(data.vec))
7675
pdata.vec <- data.vec
7776
}
7877
g$data[[a]] <- data.vec
7978
g$prestats.data[[a]] <- pdata.vec
79+
if (!is.factor(g$prestats.data[[a]]))
80+
g$prestats.data[[a]] <- g$prestats.data[[paste0(a, ".name")]]
8081
}
8182
}
8283
}

tests/testthat/test-ggplot-histogram.R

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ test_that("default position is translated to barmode=stack", {
88
L <- gg2list(hist)
99
expect_equal(length(L), 2)
1010
expect_identical(L$kwargs$layout$barmode, "stack")
11+
expect_identical(L$kwargs$layout$xaxis$type, "category")
12+
expect_identical(L[[1]]$type, "histogram")
13+
expect_true(L[[1]]$x[1] %in% c("CDN", "MEX", "USA"))
1114

1215
save_outputs(hist, "histogram-barmodestack")
1316
})

0 commit comments

Comments
 (0)