Thank you very much sir ....I really like this video ..........I prepare my graph for my master thesis , based on your this wonderful idea .....really appreciate 🙏
# change color using scale_fill_manual function. #Here number of colors must be equal to the numbers of groups to be colored. # you can pick the colors by searching html color picker from google search plot + scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07","#58D68D"))
##predefined ggplot2 colorpalettes library(viridis) plot + scale_color_viridis(option = "D") plot + scale_color_viridis(option = "E") # package ggsci has scientitifc journal color package library(ggsci) plot+scale_fill_npg() # nature publishing group color pallette plot+scale_fill_lancet() # Lancet color pallette # Rcolorbrewer package contains many color palettes, scale_fill_brewer() for box plot, bar plot, violin plot, dot plot, etc and scale_color_brewer() for lines and points library(RColorBrewer) plot+scale_fill_brewer("Dark2") plot+scale_fill_brewer("Dark3") # ggplot gray palletes plot+scale_fill_grey(start = 0.8, end = 0.2) #This is suffieicnet ofr your purpose. Or you can visit: www.datanovia.com/en/blog/ggplot-colors-best-tricks-you-will-love/#:~:text=Change%20ggplot%20colors%20by%20assigning,or%20to%20the%20fill%20arguments.
very helpful! I have followed you with my data exactly the same type but from line 98, codes are running and no error show up, but bar plots are not printed in R Markdown.
This is really helpful. Thank you a lot. Please my concern is how can you visualized one categorical variable (qualitative variable with two or three modalities) and three or two numerical (quantitative variables) in a barplot with r using ggplot. I am really confuse about how to represent it. Thank you again.
@@DevResearch library(AgroR) data(pl) with(pl,FAT2DIC(Org,Inorg,Crop_growth_rate,ylab= "Crop_growth_rate(cm)", xlab = "Org(L/ha)", addmean= FALSE,mcomp = "lsd",textsize= 12, width.column = 0.9,width.bar = 0.3, legend= "Inorg(%)",)) I am use these syntax but I get only the specific value of CV and P-value, but not LSD below the graph, can you help me?
great video, thanks. can you tell how i can change the colors of the bars, because i do not like the colors teh appear first so much. and also: is there a way to arrange the bars (e.g. sepal width-sepal length-...? cheers
line 66 is df_sumzd=group_by(df_long,Species) here just grouping is done. This i used to demonstrate the grouping only. Result gets saved as object df_sumzd On line 70 df_sumzd=group_by(df_long,Species,Mes_type) %>% summarise(mean=mean(length),sd=sd(length)) i Hve added the code for summarizing , and again the result gets saved as df_sumz. here the output of line 66 gets replaced by output of line 70. And now df_sumz will show you the output of line 70 only and not of line 66. If you clean up the environment and run the code form line 26 again you will get grouping results for line 66, which will get replaced by output of line 70, when you run the line 70. group_by() function groups the numeric output by the combination of categorical grouping variables.
Hey, thanks a mil for this. I'm having some trouble when doing this on my own dataframe.. when I calculate mean and sd, it just returns NAs and . I can get means when I use summarise_at(c("length"), mean, na.rm = TRUE) but no luck with creating SDs or SEs columns. Any advice?
you need to order the data , you can use arrange() fucntion of dplyr, then subset the data to filter out top five observations or groups as you require and then go for barplot.
Please share with us a video about 3 way factorial anova and plotting having alphabet lettering or.if you already have video please share with me Thanks dear
Sincere apologies for replying late. This shall not be done to bar plot as the minor differences will be exaggerated. But still if you need to do this then a great lot of coding is required to trick geom bar to limit the axis.
I have a problem converting an Excel sheet in a *.csv file. I've searched all day for solutions, but nothing seems to work. After I select the sheet and save it as "CSV(Comma delimited)", pressing OK and Yes as Excel tells me there could be some problems, the file opens in format .csv without putting all the date in one column separated by commas... it just remains the same and obviously I get an error when I try to open it with R. Is there someone who had the same problem? Did you find the solution? I even uninstalled and reinstalled Microsoft Office 2016 or cancelled the last two columns because they contain commas. Nothing works... I would really appreciate if you could help me. Thank you!
If possible send me the Excel file and the r code which you are using by mail to rajuchoure@gmail.com. After converting excel to csv don't open the file in excel. right click the file and use open with option. Open the file with notepad. You will see comma separated values. I save he file in the same folder where i store my R file. I set that folder as the working directory, and use read.csv("filename.csv") to import the csv file in R . I store it in a data frame.
I have a question here plz, i want to arrange the barplots, I want to put virginica, than setosa and versicolor in this order how to do it ?? thank you very much
library(dplyr) library(ggplot2) library(tidyr) library(forcats) #Method1: #you can change order of level of factor by redeclaring it. for example iris$Species= factor(iris$Species,levels=c("virginica","setosa","versicolor")) and then go for plot. iris$Species = factor(iris$Species,levels=c("virginica","setosa","versicolor")) plot % gather(FlowerOrgan,Length,1:4) %>% group_by(FlowerOrgan,Species)%>% summarise(mean_Length=mean(Length),sd_Length=sd(Length)) %>% ggplot(aes(Species,mean_Length,fill=FlowerOrgan))+ geom_bar(stat="identity",position="dodge")+ geom_errorbar(aes(ymin=mean_Length-sd_Length,ymax=mean_Length+sd_Length),width=.2, position=position_dodge(.9)) plot #Method 2 #you can use forcats library function fct_relevel in mutate function of dplyr to reorder factor. df % gather(FlowerOrgan,Length,1:4) %>% group_by(FlowerOrgan,Species)%>% summarise(mean_Length=mean(Length),sd_Length=sd(Length)) %>% mutate(Species = fct_relevel(Species, "virginica", "setosa", "versicolor")) %>% ggplot(aes(Species,mean_Length,fill=FlowerOrgan))+ geom_bar(stat="identity",position="dodge")+ geom_errorbar(aes(ymin=mean_Length-sd_Length,ymax=mean_Length+sd_Length),width=.2, position=position_dodge(.9))
You can reorder the factor levels before plotting. For example iris$Species= factor(iris$Species,levels=c("Virginica","setosa","versicolor")) And then go for plot.
@@DevResearch I use the command below, some bars were empty, i had this error Warning message: Removed 18 rows containing missing values (geom_bar). were is the mistake , thank you . df_sumzd=group_by(df_long,pathway,Samples) %>% summarise(mean=mean(length),sd=sd(length)) p=ggplot(df_sumzd,aes(x=pathway,y=mean,fill=Samples))+ geom_bar(stat="identity",position="dodge") + geom_errorbar(aes(ymin=mean-sd,ymax=mean+sd),width=0.25, size=1,position= position_dodge(0.9),alpha=0.3)+ theme(axis.text.x = element_text(angle = 45, hjust = 1))+ scale_x_discrete(limits=c("Nitrogen","Methane","Carbon","sulfate","Thiosulfate","nitrification","nitrate")) p
Please see the df_sumz. You may have missing values in the mean column. For some of the pathways or samples , there may not be any data. If possible mail me your send me df_long in CSV format or df_sumz in CSV format, so that I can try the code and find out the exact error and if any missing data is there, I can suggest imputation.
Yes. Nigerians speak better English. But still I find it difficult as i don't have practice of listening to Nigerian accent. But in recent future , i will learn that from my Nigerian students.
Very helpful explanation about sorting the data and formatting the data frame, and the graph details, every part is very helpful. Thank you.
Best video about R if seen in a long time !
Thanks for praising.
This is the most informative, thorough, and helpful video I have come across. thank you for your work and for the upload it has helped me a lot
Thanks, it helped . Do watch my other videos and share with your friends also.
thank you so much sir!! i followed the exact same step and it really helped my statistical analysis, you explained it very clearly
Really happy that it worked for you. Thanks.
Thank you so much I was loosing so much time trying to do this on my own! This video was so much help!
thanks.please subscribe and share with your friends.
Sir your teaching method is superb. Thank you. May you live long ❤️
Thanks for appreciation.
Thank you very much sir ....I really like this video ..........I prepare my graph for my master thesis , based on your this wonderful idea .....really appreciate 🙏
If you require any help for data Visualisation, model fitting ask without hesitation.
Hello from Greece man and thank you for saving me so much time ! It worked perfect !
Thanks for the appreciation.
Explicitly explained. Glad I found your channel
Thanks for appreciation. do Watch my videos and support my channel by sharing in your contacts.
You have saved me a lot of time and effort! Thank you.
Thanks for good words. Do watch my videos.
Thank you so much. This video is very informative and easy to grasp.
Please recommend this to your friends watch my other videos also.
Thankyou so much Sir, it really helped me to organise my data and plot and you have explained it so clearly.
Excellent Rajendra, I learned a lot!
Thanks for appreciating.
that's comprehensive presentation, thanks a lot
Thanks a lot for appreciation.
Thank you, very interesting session, it helped me to get what I was asking for.
Glad it helped you. Do watch my other videos also.
I didnt understand what you say but your video is the best
Thanks for appreciation. I am trying to add subtitles. But finding it difficult.
Thank you so much for the clear explanations!
Thanks for appreciation. Please watch my other videos also and subscribe to my channel. Share these with your friends.
Thank you very much!!! this is an amazing video!! really helpful!! Please, do more videos. Thanks again!!
Thanks for appreciation. Please share with your friends. And subscribe if you have not subscribed yet.
This has been very helpful. Thank you sir
Thanks for comment. Share with your friends.
Thanks for the knowledge transferring 💚
Glad, you liked it.
Thanks for making this video. It was very helpful
Thanks for appreciation. Do watch other videos also.
Very easy and precise, thanks.
Thanks for the kind words.
It is nice explanation
Very informative!
excellent and a great resource
Thanks for kind words.
Excellent Video. You save me. Thank you so much?
Thanks for appreciation. Please spread word about me.
thank you very much, this video help me so much sir !
Thanks for appreciation. This boosts my motivation to go further.
@@DevResearch Sir, i have a question whether the color in "fill = Mes_type" can be changed from defult?
# coloring diffrent form default
library(tidyverse)
df % gather(Mes_type,Length, 1:4) %>% group_by(Species,Mes_type) %>%
summarise(Mean_length=mean(Length), sd_length= sd(Length))
plot= ggplot(df,aes(Species,Mean_length,fill=Mes_type))+
geom_bar(stat="identity",position="dodge")+
geom_errorbar(aes(ymin=Mean_length-sd_length,ymax=Mean_length+sd_length), position=position_dodge(width=0.9),width=0.2)+
theme_bw()
# change color using scale_fill_manual function.
#Here number of colors must be equal to the numbers of groups to be colored.
# you can pick the colors by searching html color picker from google search
plot + scale_fill_manual(values = c("#00AFBB", "#E7B800", "#FC4E07","#58D68D"))
##predefined ggplot2 colorpalettes
library(viridis)
plot + scale_color_viridis(option = "D")
plot + scale_color_viridis(option = "E")
# package ggsci has scientitifc journal color package
library(ggsci)
plot+scale_fill_npg() # nature publishing group color pallette
plot+scale_fill_lancet() # Lancet color pallette
# Rcolorbrewer package contains many color palettes, scale_fill_brewer() for box plot, bar plot, violin plot, dot plot, etc and scale_color_brewer() for lines and points
library(RColorBrewer)
plot+scale_fill_brewer("Dark2")
plot+scale_fill_brewer("Dark3")
# ggplot gray palletes
plot+scale_fill_grey(start = 0.8, end = 0.2)
#This is suffieicnet ofr your purpose. Or you can visit: www.datanovia.com/en/blog/ggplot-colors-best-tricks-you-will-love/#:~:text=Change%20ggplot%20colors%20by%20assigning,or%20to%20the%20fill%20arguments.
Thank you sir :)
Thank you so much!
thank you very very much!!!
thank you so much sir!
Excellent!
Many thanks!
💯 worth.
very helpful! I have followed you with my data exactly the same type but from line 98, codes are running and no error show up, but bar plots are not printed in R Markdown.
You can share your code and data with me on rajuchoure@gmail.com. i will work on the code to find out the issue.
Thank you so much sir.
its mt pleasure, you found it useful.
thank u so much! really thanks
Glad, that it helped you. Please do watch my other videos also.
Thanks for the explanation. I have a question. How to add the error bar for #colors- stacked bar plot section. We need that sometimes. Thx
Will try that and share code here.
thanks sir!
This is really helpful. Thank you a lot. Please my concern is how can you visualized one categorical variable (qualitative variable with two or three modalities) and three or two numerical (quantitative variables) in a barplot with r using ggplot. I am really confuse about how to represent it. Thank you again.
Can you share few rows of data, so that i can understand requirement and think of solution.
Very nice vedio, and informative. Do you know how to add ANOVA or significance value in a group boxplot!!
Thanks for the video :)
My pleasure!
Awesome video! Thanks!
Glad you liked it!
how can added the specific value of LSD value by numeric below the graph
# Sample data
df
@@DevResearch library(AgroR)
data(pl)
with(pl,FAT2DIC(Org,Inorg,Crop_growth_rate,ylab= "Crop_growth_rate(cm)", xlab = "Org(L/ha)",
addmean= FALSE,mcomp = "lsd",textsize= 12, width.column = 0.9,width.bar = 0.3, legend= "Inorg(%)",))
I am use these syntax but I get only the specific value of CV and P-value, but not LSD below the graph, can you help me?
Thank you!
Welcome!
Here Rajendra Choure used Readily available SD values. In fact, we can also calculate, Mean, SD or SE from variables observations.
Yes, those are actually calculated using summarise function of Dplyr. This function applies any other function to all categories in the variable.
you are awesome. dude
Thanks for good words. Please do watch the videos I make.
great video, thanks. can you tell how i can change the colors of the bars, because i do not like the colors teh appear first so much. and also: is there a way to arrange the bars (e.g. sepal width-sepal length-...? cheers
Very soon will make a video to demonstrate customizing colors. And then will go to arrange bars as we want them to be
Very nice! Could you show how to change the font of the names (setosa , versicolor, virginica) to italic? Thank you for your attention!
Great suggestion!
Thank you for this great video! Can you tell me what is the difference between line 66 and 70 of the code? I see they both return the same result,?
line 66 is
df_sumzd=group_by(df_long,Species)
here just grouping is done. This i used to demonstrate the grouping only. Result gets saved as object df_sumzd
On line 70
df_sumzd=group_by(df_long,Species,Mes_type) %>% summarise(mean=mean(length),sd=sd(length))
i Hve added the code for summarizing , and again the result gets saved as df_sumz. here the output of line 66 gets replaced by output of line 70.
And now df_sumz will show you the output of line 70 only and not of line 66. If you clean up the environment and run the code form line 26 again you will get grouping results for line 66, which will get replaced by output of line 70, when you run the line 70.
group_by() function groups the numeric output by the combination of categorical grouping variables.
Hey, thanks a mil for this. I'm having some trouble when doing this on my own dataframe.. when I calculate mean and sd, it just returns NAs and . I can get means when I use summarise_at(c("length"), mean, na.rm = TRUE) but no luck with creating SDs or SEs columns. Any advice?
Need to see the data. It happened with me some times, but I forgot the context. Can figure out with your dat.
@@DevResearch Thank you. I will send an email :)
I updated all my packages and it worked!! thank you and apologies, I should have checked
🤦♀️
Hello sir, Can you tell if we have very big dataset but on barplot we want to show top 5, How will do that ?
you need to order the data , you can use arrange() fucntion of dplyr, then subset the data to filter out top five observations or groups as you require and then go for barplot.
Please share with us a video about 3 way factorial anova and plotting having alphabet lettering or.if you already have video please share with me
Thanks dear
I shared the video. Please visit my RUclips channel.
Can we cut down the high value of bar plot to look good with low value in ggplot2 as in origin
Sincere apologies for replying late. This shall not be done to bar plot as the minor differences will be exaggerated. But still if you need to do this then a great lot of coding is required to trick geom bar to limit the axis.
I have a problem converting an Excel sheet in a *.csv file. I've searched all day for solutions, but nothing seems to work. After I select the sheet and save it as "CSV(Comma delimited)", pressing OK and Yes as Excel tells me there could be some problems, the file opens in format .csv without putting all the date in one column separated by commas... it just remains the same and obviously I get an error when I try to open it with R.
Is there someone who had the same problem? Did you find the solution? I even uninstalled and reinstalled Microsoft Office 2016 or cancelled the last two columns because they contain commas. Nothing works...
I would really appreciate if you could help me.
Thank you!
If possible send me the Excel file and the r code which you are using by mail to rajuchoure@gmail.com. After converting excel to csv don't open the file in excel. right click the file and use open with option. Open the file with notepad. You will see comma separated values.
I save he file in the same folder where i store my R file. I set that folder as the working directory, and use read.csv("filename.csv") to import the csv file in R . I store it in a data frame.
I have a question here plz, i want to arrange the barplots, I want to put virginica, than setosa and versicolor in this order how to do it ?? thank you very much
library(dplyr)
library(ggplot2)
library(tidyr)
library(forcats)
#Method1:
#you can change order of level of factor by redeclaring it. for example
iris$Species= factor(iris$Species,levels=c("virginica","setosa","versicolor")) and then go for plot.
iris$Species = factor(iris$Species,levels=c("virginica","setosa","versicolor"))
plot % gather(FlowerOrgan,Length,1:4) %>%
group_by(FlowerOrgan,Species)%>%
summarise(mean_Length=mean(Length),sd_Length=sd(Length)) %>%
ggplot(aes(Species,mean_Length,fill=FlowerOrgan))+
geom_bar(stat="identity",position="dodge")+
geom_errorbar(aes(ymin=mean_Length-sd_Length,ymax=mean_Length+sd_Length),width=.2,
position=position_dodge(.9))
plot
#Method 2
#you can use forcats library function fct_relevel in mutate function of dplyr to reorder factor.
df % gather(FlowerOrgan,Length,1:4) %>%
group_by(FlowerOrgan,Species)%>%
summarise(mean_Length=mean(Length),sd_Length=sd(Length)) %>% mutate(Species = fct_relevel(Species,
"virginica", "setosa", "versicolor")) %>%
ggplot(aes(Species,mean_Length,fill=FlowerOrgan))+
geom_bar(stat="identity",position="dodge")+
geom_errorbar(aes(ymin=mean_Length-sd_Length,ymax=mean_Length+sd_Length),width=.2,
position=position_dodge(.9))
You can reorder the factor levels before plotting. For example iris$Species= factor(iris$Species,levels=c("Virginica","setosa","versicolor"))
And then go for plot.
@@DevResearch I use the command below, some bars were empty, i had this error Warning message:
Removed 18 rows containing missing values (geom_bar).
were is the mistake , thank you .
df_sumzd=group_by(df_long,pathway,Samples) %>% summarise(mean=mean(length),sd=sd(length))
p=ggplot(df_sumzd,aes(x=pathway,y=mean,fill=Samples))+
geom_bar(stat="identity",position="dodge") +
geom_errorbar(aes(ymin=mean-sd,ymax=mean+sd),width=0.25,
size=1,position= position_dodge(0.9),alpha=0.3)+
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
scale_x_discrete(limits=c("Nitrogen","Methane","Carbon","sulfate","Thiosulfate","nitrification","nitrate"))
p
Please see the df_sumz. You may have missing values in the mean column. For some of the pathways or samples , there may not be any data. If possible mail me your send me df_long in CSV format or df_sumz in CSV format, so that I can try the code and find out the exact error and if any missing data is there, I can suggest imputation.
@@DevResearch both files are correct , noo missing value. can I have you email pls. Thank you very much
Hello can we plot image on x axis ?
I will have to try, do you want image with axis title
We want both name of country with flag for stacked bar chart
my label doesn't show on bar, why please tell
Share your code.
Cannot thank you enough haha
Watch my other videos also. This Are also good.
I can't see in the movie. The qualification of the movie is too bad
Is this English? I now think Nigeria has better command of english. LOL!
Yes. Nigerians speak better English. But still I find it difficult as i don't have practice of listening to Nigerian accent. But in recent future , i will learn that from my Nigerian students.