[R] ggplot2 - exercise (“fill =“)

We have made the plots like:

Let's practice with what we have learnt in: [R] How to communicate with your data? - ggplot2-CSDN博客https://blog.csdn.net/m0_74331272/article/details/136513694

R 复制代码
#tutorial 5 -script
#Exercise 1
#1.1#
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(x=AlAge2))+geom_histogram(fill="Blue",stat="count")
#1.2
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(x=AlAge2))+geom_histogram(fill="Blue",stat="count", alpha=0.75)+labs(title="Age at which English pupils drunk alcohol for the first time",x="Age")


#Exercise 2
#2.1
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(x=Books2))+geom_bar()
#2.2 
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(fct_infreq(Books2)))+geom_bar()

#.2.3
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(fct_infreq(Books2),fill=Books2))+geom_bar(alpha=0.5)+scale_fill_brewer(palette="Greens")+labs(title="Nbr of books that english pupils have at home",x="")

#Exercise 3
#3.1
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(x=AlAge2,fill=Sex))+geom_histogram(stat="count", alpha=0.75)+labs(title="Age at which English pupils experienced alcohol for the first time", x="Age")
#3.2
#the distribution is very close for both sex
#3.3
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(x=CgAge2,fill=Sex))+geom_density(stat="count",alpha=0.25)+labs(title="Age at which English pupils smoke cigarette for the first time", x="Age")
Exercise Description aes Function Effect Fill Effect Stat Effect Alpha Labs Effect
1.1 Histogram of the AlAge2 variable with blue bars x=AlAge2 Blue count None None
1.2 Histogram of the AlAge2 variable with blue bars, adjusted transparency, and axis labels x=AlAge2 Blue count 0.75 Title: "Age at which English pupils drunk alcohol for the first time"; x-axis label: "Age"
2.1 Bar plot of the Books2 variable x=Books2 None count None None
2.2 Bar plot of the Books2 variable with reordered levels by frequency x=fct_infreq(Books2) None count None None
2.3 Bar plot of the Books2 variable with reordered levels by frequency and filled by Books2 x=fct_infreq(Books2); fill=Books2 Books2 count 0.5 Title: "Nbr of books that english pupils have at home"; x-axis label: ""
3.1 Histogram of the AlAge2 variable with bars filled by Sex and adjusted transparency x=AlAge2; fill=Sex Sex count 0.75 Title: "Age at which English pupils experienced alcohol for the first time"; x-axis label: "Age"
3.3 Density plot of the CgAge2 variable with density curves filled by Sex x=CgAge2; fill=Sex Sex count 0.25 Title: "Age at which English pupils smoke cigarette for the first time"; x-axis label: "Age"

1.1

1.2

2.1

2.2

2.3

Why the former one don't need fill = Books2 ?

In ggplot2, when you use the fct_infreq() function to reorder a categorical variable like Books2 based on frequency, ggplot automatically creates bars for each level of the reordered variable. This means that each bar in the plot represents a level of the Books2 variable, and the bars are automatically filled based on the default color scheme.

In the second line of code, aes(fct_infreq(Books2), fill=Books2) is used to specify that the fill aesthetic should be mapped to the Books2 variable. This means that the bars in the bar plot will be filled based on the levels of the Books2 variable , and the fct_infreq(Books2) function is used to reorder the bars based on the frequency of each level.

In contrast, in the first line of code, aes(fct_infreq(Books2)) is used without specifying fill=Books2. This means that the bars in the bar plot will be filled with a default color, and the fct_infreq(Books2) function is still used to reorder the bars based on frequency. However, the fill aesthetic is not explicitly mapped to any variable, so the bars will not be filled based on the levels of the Books2 variable and they are the same.

If we delete the fill = part in the 2.3:

R 复制代码
ggplot(smoking_and_drug_use_amongst_English_pupils,aes(fct_infreq(Books2)))+geom_bar(alpha=0.5)+scale_fill_brewer(palette="Greens")+labs(title="Nbr of books that english pupils have at home",x="")

The scale_fill_brewer will not work:

3.1

if we delete the fill = sex

3.2

相关推荐
哈哈不让取名字7 小时前
基于C++的爬虫框架
开发语言·c++·算法
花间相见7 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su7 小时前
Java---Properties 类
java·开发语言
一条咸鱼_SaltyFish8 小时前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发
我即将远走丶或许也能高飞9 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
沐知全栈开发9 小时前
SQL LEN() 函数详解
开发语言
钟离墨笺9 小时前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang
小郭团队9 小时前
1_7_五段式SVPWM (传统算法反正切+DPWM3)算法理论与 MATLAB 实现详解
开发语言·嵌入式硬件·算法·matlab·dsp开发
C+-C资深大佬10 小时前
C++风格的命名转换
开发语言·c++
No0d1es10 小时前
2025年粤港澳青少年信息学创新大赛 C++小学组复赛真题
开发语言·c++