Hi All, I have data in excel with the following details: CHG_methylation Young_Control Young_Treated 0-10% 95.23 94.53 10-20% 3.71 4.16 20-30% 0.68 0.8 30-40% 0.18 0.22 40-50% 0.07 0.09 50-60% 0.04 0.06 60-70% 0.02 0.04 70-80% 0.02 0.03 80-90% 0.02 0.03 90-100% 0.04 0.05 I am trying to plot the graph using ggplot2 but not successful yet. My code is below: library(readxl) library(dplyr) library(tidyverse) data2 <- read_excel("CHG_meth_plot1.xlsx") df <- data2 df <- data.frame(var=c("Young_Control", "Young_Treated", "CHG_methylation")) df ggplot(data = df, aes(x = var, y = CHG_methylation)) + geom_bar(aes(fill = CHG_methylation)) I am getting error as something is wrong with my df. Also I needed to create breaks in y-axis as I do not know whether it is possible in R or not. Any kind of help is highly appreciated. Thanks, Puja [[alternative HTML version deleted]]
What do you think these two statements do? df <- data2 df <- data.frame(var=c("Young_Control", "Young_Treated", "CHG_methylation")) I suggest you stop what you're doing and spend time with an R tutorial or two before proceeding. Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Sun, Feb 16, 2020 at 2:01 PM pooja sinha <pjsinha07 at gmail.com> wrote:> Hi All, > > I have data in excel with the following details: > CHG_methylation Young_Control Young_Treated > 0-10% 95.23 94.53 > 10-20% 3.71 4.16 > 20-30% 0.68 0.8 > 30-40% 0.18 0.22 > 40-50% 0.07 0.09 > 50-60% 0.04 0.06 > 60-70% 0.02 0.04 > 70-80% 0.02 0.03 > 80-90% 0.02 0.03 > 90-100% 0.04 0.05 > I am trying to plot the graph using ggplot2 but not successful yet. My code > is below: > > library(readxl) > library(dplyr) > library(tidyverse) > data2 <- read_excel("CHG_meth_plot1.xlsx") > df <- data2 > df <- data.frame(var=c("Young_Control", "Young_Treated", > "CHG_methylation")) > df > > ggplot(data = df, aes(x = var, y = CHG_methylation)) + > geom_bar(aes(fill = CHG_methylation)) > > I am getting error as something is wrong with my df. Also I needed to > create breaks in y-axis as I do not know whether it is possible in R or > not. > Any kind of help is highly appreciated. > > Thanks, > Puja > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >[[alternative HTML version deleted]]
Hello, Your error is that you are not plotting the values in your file See what is in df, it's one column only with 3 character strings, c("Young_Control", "Young_Treated", "CHG_methylation"). Those *are not* the names of columns, they are just strings. The right way of doing it is to reshape your data from wide format to long format first. I will reformat with tidyr::pivot_longer and pipe the result directly to ggplot. Also, given the large difference in the values plotted, I suggest you comment out the code line with "log10", it will plot the y axis in the logarithmic scale. library(tidyverse) library(ggplot2) df1 %>% pivot_longer( cols = c("Young_Control", "Young_Treated"), names_to = "Treatment", values_to = "Value" ) %>% ggplot(aes(x = CHG_methylation, y = Value, fill = Treatment)) + geom_col(position = position_dodge(0.9)) + #scale_y_continuous(trans = "log10") + theme(axis.text.x = element_text(angle = 60, vjust = 1)) Hope this helps, Rui Barradas ?s 22:01 de 16/02/20, pooja sinha escreveu:> Hi All, > > I have data in excel with the following details: > CHG_methylation Young_Control Young_Treated > 0-10% 95.23 94.53 > 10-20% 3.71 4.16 > 20-30% 0.68 0.8 > 30-40% 0.18 0.22 > 40-50% 0.07 0.09 > 50-60% 0.04 0.06 > 60-70% 0.02 0.04 > 70-80% 0.02 0.03 > 80-90% 0.02 0.03 > 90-100% 0.04 0.05 > I am trying to plot the graph using ggplot2 but not successful yet. My code > is below: > > library(readxl) > library(dplyr) > library(tidyverse) > data2 <- read_excel("CHG_meth_plot1.xlsx") > df <- data2 > df <- data.frame(var=c("Young_Control", "Young_Treated", "CHG_methylation")) > df > > ggplot(data = df, aes(x = var, y = CHG_methylation)) + > geom_bar(aes(fill = CHG_methylation)) > > I am getting error as something is wrong with my df. Also I needed to > create breaks in y-axis as I do not know whether it is possible in R or > not. > Any kind of help is highly appreciated. > > Thanks, > Puja > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. >
Thanks for your suggestion and code. Puja On Sun, Feb 16, 2020 at 5:23 PM Rui Barradas <ruipbarradas at sapo.pt> wrote:> Hello, > > Your error is that you are not plotting the values in your file > See what is in df, it's one column only with 3 character strings, > c("Young_Control", "Young_Treated", "CHG_methylation"). Those *are not* > the names of columns, they are just strings. > > The right way of doing it is to reshape your data from wide format to > long format first. I will reformat with tidyr::pivot_longer and pipe the > result directly to ggplot. > > Also, given the large difference in the values plotted, I suggest you > comment out the code line with "log10", it will plot the y axis in the > logarithmic scale. > > > library(tidyverse) > library(ggplot2) > > df1 %>% > pivot_longer( > cols = c("Young_Control", "Young_Treated"), > names_to = "Treatment", > values_to = "Value" > ) %>% > ggplot(aes(x = CHG_methylation, y = Value, fill = Treatment)) + > geom_col(position = position_dodge(0.9)) + > #scale_y_continuous(trans = "log10") + > theme(axis.text.x = element_text(angle = 60, vjust = 1)) > > > Hope this helps, > > Rui Barradas > > > ?s 22:01 de 16/02/20, pooja sinha escreveu: > > Hi All, > > > > I have data in excel with the following details: > > CHG_methylation Young_Control Young_Treated > > 0-10% 95.23 94.53 > > 10-20% 3.71 4.16 > > 20-30% 0.68 0.8 > > 30-40% 0.18 0.22 > > 40-50% 0.07 0.09 > > 50-60% 0.04 0.06 > > 60-70% 0.02 0.04 > > 70-80% 0.02 0.03 > > 80-90% 0.02 0.03 > > 90-100% 0.04 0.05 > > I am trying to plot the graph using ggplot2 but not successful yet. My > code > > is below: > > > > library(readxl) > > library(dplyr) > > library(tidyverse) > > data2 <- read_excel("CHG_meth_plot1.xlsx") > > df <- data2 > > df <- data.frame(var=c("Young_Control", "Young_Treated", > "CHG_methylation")) > > df > > > > ggplot(data = df, aes(x = var, y = CHG_methylation)) + > > geom_bar(aes(fill = CHG_methylation)) > > > > I am getting error as something is wrong with my df. Also I needed to > > create breaks in y-axis as I do not know whether it is possible in R or > > not. > > Any kind of help is highly appreciated. > > > > Thanks, > > Puja > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > > >[[alternative HTML version deleted]]