• Register
1 vote
48 views

Problem :

I have recently started using R I am very new to R while working on R I am facing the below error whenever I try to create the graph on the ggplot:

“Error: ggplot2 doesn't know how to deal with data of class gg/ggplot”
I often face the error message if I try to create below graphs.
MyCars %>%
ggplot() %>%
geom_bar(mapping = aes(x = Destination))

MyCars %>%
ggplot() %>%
geom_bar(mapping = aes(x = Cost))

MyCars %>%
ggplot() %>%
geom_point(mapping = aes(x = Destination, y = Cost))
I need help in fixing above error.
8 5 2
3,230 points

2 Answers

1 vote

Solution :

I can help you in fixing your errors. As you are very new to R there are possibilities of mistakes from your end. From my point of view your main mistake is the use of pipe (%>%) instead of using the + . Also I want to suggest you to put your aes() (x\y axis) under your ggplot() and it should not be under your other arguments.

Please refer below example for more clarity:

require(tidyverse)

df <- MyCars

df %>% 
  ggplot(aes(x = factor(vs))) +
  geom_bar()

df %>%
  ggplot(aes(x = mpg, y = disp)) +
  geom_point()
I hope my above solution will help you in fixing the errors.
8 4
5,680 points
0 votes

Solution:

The error occurs since of you are attempting to map a numeric vector to data in geom_errorbarGVW[1:64,3]ggplot just performs with data.frame.

Usually, you shouldn't subset within ggplot calls. You are doing so since your standard errors are contained in four separate objects. include them to your original data.frame and you will be able to plot everything in one call.

Here with a dplyr solution to shorten the data and compute the standard error beforehand.

library(dplyr)
d <- GVW %>% group_by(Genotype,variable) %>%
    summarise(mean = mean(value),se = sd(value) / sqrt(n()))

ggplot(d, aes(x = variable, y = mean, fill = Genotype)) + 
  geom_bar(position = position_dodge(), stat = "identity", 
      colour="black", size=.3) +
  geom_errorbar(aes(ymin = mean - se, ymax = mean + se), 
      size=.3, width=.2, position=position_dodge(.9)) +
  xlab("Time") +
  ylab("Weight [g]") +
  scale_fill_hue(name = "Genotype", breaks = c("KO", "WT"), 
      labels = c("Knock-out", "Wild type")) +
  ggtitle("Effect of genotype on weight-gain") +
  scale_y_continuous(breaks = 0:20*4) +
  theme_bw()

 

10 6 4
31,120 points

Related questions

0 votes
1 answer 14 views
1 vote
1 answer 39 views
39 views
Problem: I am a naive to R. I am trying to create the bar graph using the ggplot2 to compare a type of 2016 primary election and the Bernie Sanders's respective percentage of the votes in that election. I have below code: y = $ Type : Factor w/ 2 levels ... data of class uneval. I have already tried to search the solution on above error around but because of some unknown reasons to me I am stuck.
asked May 27 Martin K 6.6k points
1 vote
1 answer 27 views
27 views
Problem : I am trying to understand R and I am very new to Programming as wel. If I try to create the box chart with the use of standard error bars I often face below error message: “Error: ggplot2 doesn't know how to deal with data of class numeric”. Looking for help in quick fixing the above error.
asked May 5 stewart 4k points
0 votes
1 answer 586 views
586 views
Problem : I need answer to bellow issue don't know how to automatically pick scale for object of type data.frame. defaulting to continuous.
asked Nov 7, 2019 peterlaw 6.9k points
1 vote
1 answer 1.8K views
1.8K views
Problem : I am facing error related to ggproto as following error: cannot add ggproto objects together. did you forget to add this object to a ggplot object?
asked Nov 11, 2019 peterlaw 6.9k points