Search code examples
rplotggplot2viridis

Temperature Plot: Error in FUN(X[[i]], ...) : object 'y' not found


I am trying to plot the temperatures while taking the code from the link below: https://cran.r-project.org/web/packages/ggjoy/vignettes/gallery.html

enter image description here

Here the author used y-axis as month axis but I want to use x-axis as month axis and y-axis as temperature axis.

The data can be downloaded from the foloowing link: https://drive.google.com/file/d/0ByOfjCmqEilLYndpOWJyZXhPVUk/view

The code is given below:

enter code here
library(ggjoy)
library(hrbrthemes)
library(viridis)

setwd <- 'C:/Users/Data/'
weather.raw <- read.csv(file="nebraska-2016.csv", header=TRUE, sep=",")
weather.raw$month<-months(as.Date(weather.raw$Date))
weather.raw$months<-
        factor(rev(weather.raw$month),levels=rev(unique(weather.raw$month)))

mins<-min(weather.raw$Min.TemperatureF)
maxs<-max(weather.raw$Max.TemperatureF)

ggplot(weather.raw, aes(x = months , y = Mean.TemperatureF, fill = ..y..)) + 
geom_joy_gradient(scale = 1, rel_min_height = 0.01, gradient_lwd = 1.) +
scale_x_discrete(expand = c(0.01, 0)) +
scale_y_continuous(expand = c(0.01, 0)) +
scale_fill_viridis(name = "Temp. [°C]", option = "C") +
labs(title = 'Temperatures',
subtitle = 'Histogram of Mean Temperatures (°F) - 2016') +
theme_joy(font_size = 13, grid = TRUE) + theme(axis.title.x = element_blank())

It gives the following error.

Error in FUN(X[[i]], ...) : object 'y' not found


Solution

  • library(ggjoy)
    library(hrbrthemes)
    library(viridis)
    
    weather.raw <- read.csv(file="nebraska-2016.csv", header=TRUE, sep=",")
    weather.raw$month <- months(as.Date(weather.raw$CST))
    weather.raw$months <- factor(weather.raw$month,levels=unique(weather.raw$month))
    
    weather.raw$Mean.TemperatureF <- (weather.raw$Mean.TemperatureF-32)/1.8
    
    ggplot(weather.raw, aes(x = Mean.TemperatureF, y = months , fill = ..x..)) + 
    geom_joy_gradient(aes(x=Mean.TemperatureF), scale = 1, 
                      rel_min_height = 0.01, gradient_lwd = 1.) + 
    coord_flip() +
    scale_y_discrete(expand = c(0.01, 0)) +
    scale_x_continuous(expand = c(0.01, 0)) +
    scale_fill_viridis(name = "Temp. [°C]", option = "C") +
    labs(title = 'Temperatures',
    subtitle = 'Histogram of Mean Temperatures (°C) - 2016') +
    theme_joy(font_size = 13, grid = TRUE) + theme(axis.title.x = element_blank())
    

    enter image description here