梳理系统学习R语言1-R语言实战-使用ggplot进行高阶绘图

以下为书中代码,会添加一些理解

bash 复制代码
library("ggplot2")
ggplot(data=mtcars,aes(x=wt,y=mpg))+
  geom_point()+geom_point(pch=17,color="blue",size=2)+
  geom_smooth(method="lm",color="red",linetype=2)+
  labs(title="Automobile Data",x="Weight",y="Miles per Gallon")

#分面
mtcars$am<-factor(mtcars$am,levels=c(0,1),
                  labels = c("Automatic","Manual"))
mtcars$vs<-factor(mtcars$vs,levels=c(0,1),
                  labels=c("V","S"))
mtcars$cyl<-factor(mtcars$cyl)
ggplot(data=mtcars,aes(x=wt,y=mpg,shape=cyl,color=cyl))+
  geom_point(size=3)+facet_grid(am~vs)+labs(title="Automobile Data by Engine Type",
                                            x="Horsepower",y="Miles per Gallon")


data(singer,package="lattice")
ggplot(singer,aes(x=height))+geom_histogram()
ggplot(singer,aes(x=voice.part,y=height))+geom_boxplot()

install.packages("carData")
data(Salaries, package="carData")
ggplot(singer,aes(x=voice.part,y=height))+
  geom_violin(fill="lightblue")+
  geom_boxplot(fill="lightgreen",width=.2)

ggplot(data=Salaries,aes(x=salary,fill=rank))+
  geom_density(alpha=.3)

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,
                    shape=sex))+geom_point()

ggplot(Salaries,aes(x=rank,fill=sex))+geom_bar(position="stack")+labs(title='position="stack"')

ggplot(Salaries,aes(x=rank,fill=sex))+geom_bar(position="dodge")+labs(title='position="dodge"')

ggplot(Salaries,aes(x=rank,fill=sex))+geom_bar(position="dodge")+labs(title='position="fill"')
#将y轴改为y="proportion"
ggplot(Salaries,aes(x=rank,fill=sex))+geom_bar(position="dodge")+labs(title='position="fill"',y="proportion")

#fill在aes()函数中,应该是变量的名称,在函数外,应该是颜色
ggplot(Salaries,aes(x=rank,fill=sex))+geom_bar()
ggplot(Salaries,aes(x=rank))+geom_bar(fill="red")
ggplot(Salaries,aes(x=rank,fill="red"))+geom_bar()

#刻面
ggplot(singer,aes(x=height))+geom_histogram()+facet_wrap(~voice.part,nrow=4)

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank,
                    shape=rank))+geom_point()+facet_grid(.~sex)

ggplot(singer,aes(x=height,fill=voice.part))+geom_density()+facet_grid(voice.part~.)

#添加光滑曲线
ggplot(Salaries,aes(x=yrs.since.phd,y=salary))+
  geom_smooth()+geom_point()

ggplot(Salaries,aes(x=yrs.since.phd,y=salary,
                    linetype=sex,shape=sex,color=sex))+
  geom_smooth(method=lm,formula=y~poly(x,2),se=FALSE,size=1
              )+geom_point(size=2)

#修改ggplot()图形外观
ggplot(Salaries,aes(x=rank,y=salary,fill=sex))+
  geom_boxplot()+
  scale_x_discrete(breaks=c("AsstProf","AssocProf","Prof"),
                             labels=c("assis",
                                      "associate",
                                      "Full"))+
  scale_y_continuous(breaks=c(50000,100000,150000,200000),
                     labels=c("$50K","$100K","$150K","$200K"))+
  labs(title='test',x="",y="")

#图例
ggplot(Salaries,aes(x=rank,y=salary,fill=sex))+
  geom_boxplot()+
  scale_x_discrete(breaks=c("AsstProf","AssocProf","Prof"),
                   labels=c("assis",
                            "associate",
                            "Full"))+
  scale_y_continuous(breaks=c(50000,100000,150000,200000),
                     labels=c("$50K","$100K","$150K","$200K"))+
  labs(title='test',x="",y="",fill="Gender")+theme(legend.position = c(.1,.8))

ggplot(mtcars,aes(x=wt,y=mpg,size=disp))+geom_point(shape=21,color="black",fill="cornsilk")+
  labs(x="Weight",y="Miles Per Gallon",
       title="Bubble Chart",size="Engize\nDisplacement")


ggplot(Salaries,aes(x=yrs.since.phd,y=salary,color=rank))+scale_color_manual(values=c("orange","olivedrab","navy"))+geom_point(size=2)




mytheme<-theme(plot.title = element_text(face="bold.italic",size="14",color="brown"),
               axis.title=element_text(face="bold.italic",size = 10,color = "brown"),
               axis.text=element_text(face="bold",size=9,
                                      color="darkblue"),
               panel.background = element_rect(fill="white",
                                               color="darkblue"),
               panel.grid.major.y = element_line(color="gray",
                                                 linetype=1),
               panel.grid.minor.y=element_line(color="grey",
                                               linetype=2),
               panel.grid.minor.x=element_blank(),
               legend.position = "top")

ggplot(Salaries,aes(x=rank,y=salary,fill=sex))+
  geom_boxplot()+labs(title = "Salary by Rank and sex",x="Rank",y="Salary")+mytheme
相关推荐
西岸行者11 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意11 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码11 天前
嵌入式学习路线
学习
毛小茛11 天前
计算机系统概论——校验码
学习
babe小鑫11 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms11 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下11 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。11 天前
2026.2.25监控学习
学习
im_AMBER11 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J11 天前
从“Hello World“ 开始 C++
c语言·c++·学习