函数scale_y_continuous(expand=c(0,0))
给出了错误:
Error: Discrete value supplied to continuous scale
我真的不明白这意味着什么。该函数称为scale_y_continuous
,而不是scale_y_discrete
。 Here's my data
require(ggplot2) # ggplot
gp <- read.csv("Retail_Gas_Prices.csv")
gp$Date <- as.Date(substr(gp$Date, 1, 10), "%m/%d/%Y")
gp_melted <- melt(gp, id = "Date")
gas_ml_plot <- ggplot(subset(gp_melted, variable != "Weekly.US"),
aes(Date, value, colour = variable)) +
geom_line() + ggtitle("Retail Gas Prices In The US") +
theme(axis.title.x = element_blank()) +
ylab("Cost in Dollars") +
theme(axis.ticks = element_blank()) +
labs(colour = "US Region") +
scale_color_discrete(labels = c("East Coast", "Midwest",
"Gulf Coast", "Rocky Mountain", "West Coast")) +
theme(legend.background = element_blank()) +
theme(legend.position = c(0, 1)) +
theme(legend.justification = c(0, 1)) +
scale_y_continuous(expand = c(0, 0)) +
scale_x_discrete(expand = c(0, 0))
答案 0 :(得分:4)
错误消息是错误的,因为问题是Date对象被传递到离散x标度,不表示为连续标度提供了离散值。解决方案是使用正确的x刻度;由于x变量是日期,因此使用scale_x_date(expand = c(0, 0))
代替scale_x_discrete(expand = c(0, 0))
。