-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Closed
Labels
bugan unexpected problem or unintended behavioran unexpected problem or unintended behaviorinternals 🔎
Milestone
Description
If a data is zero row and the lengths of aesthetics are not zero, ggplot
throws an error with an wrong length of the data as follows.
Error: Aesthetics must be either length 1 or the same as the data (1): x, y, colour
I think the number in the parentheses indicates the length of the data, but it is wrong, since the length is zero.
In addition, this behavior doesn't get along with constant (length-one) aesthetics, while they can be combined with non-zero-row data. I hope ggplot
tolerates combination of zero-row data and constant aesthetics.
Example (using R 3.5.1 and ggplot2 3.0.0):
library(ggplot2)
d1 <- data.frame(xval = rep(1:5, 4), yval = 1:20)
# The followings are OK
ggplot(d1, aes(xval, yval))
ggplot(d1, aes(xval, yval, colour = "Type 1"))
nrow(d1[0,])
#> [1] 0
ggplot(d1[0,], aes(xval, yval))
# This causes an error
ggplot(d1[0,], aes(xval, yval, colour = "Type 1"))
#> Error: Aesthetics must be either length 1 or the same as the data (1): x, y, colour
Metadata
Metadata
Assignees
Labels
bugan unexpected problem or unintended behavioran unexpected problem or unintended behaviorinternals 🔎