2013-03-16 2 views
3

Функция scale_y_continuous(expand=c(0,0)) дает мне ошибку:Попытка удалить поля на ggplot2 визуализации

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)) 

ответ

4

Сообщение об ошибке плохого в том, что проблема состоит в том, что объект был передан Дата дискретному х масштабе, не, что дискретное значение было предоставлено непрерывной шкале. Решение состоит в использовании правильной шкалы x; поскольку переменная x является датой, используйте scale_x_date(expand = c(0, 0)) вместо scale_x_discrete(expand = c(0, 0)).

Я представил отчет об ошибке, описывающее эту проблему в https://github.com/hadley/ggplot2/issues/783

+0

Спасибо ISTA! Можем ли мы скомпилировать вас в какой-то человеческий код-расширение ggplot2, чтобы я мог получить полезные ошибки? : P – KFunk

+0

Ха-ха, @KFunk Я не могу придумать способ автоматизировать его, просто продолжайте публиковать на SO, и я сделаю все возможное. – Ista

Смежные вопросы