控制坐标轴和刻度线外观的函数svg
函数 | 选项 |
scale_x_continuous()和 scale_y_continuous() |
breaks=指定刻度标记,labels=指定刻度标记标签, limits=控制要展现的值的范围 |
scale_x_discrete()和 scale_y_discrete() |
breaks=对因子的水平进行放置和排序,labels=指定这些水平的标签, limits=表示哪些水平应该展现 |
coord_flip() | 颠倒 x 轴和 y 轴 |
按学术等级和性别分组的薪资水平函数
> data(Salaries,package="car") > library(ggplot2) > ggplot(data=Salaries, aes(x=rank, y=salary, fill=sex)) + + geom_boxplot() + + scale_x_discrete(breaks=c("AsstProf", "AssocProf", "Prof"), #对x轴因子进行自定义 + labels=c("Assistant\nProfessor", + "Associate\nProfessor", + "Full\nProfessor")) + + scale_y_continuous(breaks=c(50000, 100000, 150000, 200000), #对Y轴刻度进行处理 + labels=c("$50K", "$100K", "$150K", "$200K")) + + labs(title="Faculty Salary by Rank and Sex", x="", y="") #将 x y 轴名称都设置为空
图例是指如用颜色、形状、尺寸等视觉特性表示数据特征的指南spa
在labs中添加 fill=“myvar”code
由theme()函数中的 legend.position选项控制,可能的值包括“left”、“top”、“right(默认值)”,“bottom” ,也能够指定一个二元素向量对象
legend.position = "none"排序
> ggplot(data=Salaries, aes(x=rank, y=salary, fill=sex)) + + geom_boxplot() + + scale_x_discrete(breaks=c("AsstProf", "AssocProf", "Prof"), + labels=c("Assistant\nProfessor", + "Associate\nProfessor", + "Full\nProfessor")) + + scale_y_continuous(breaks=c(50000, 100000, 150000, 200000), + labels=c("$50K", "$100K", "$150K", "$200K")) + + labs(title="Faculty Salary by Rank and Sex",x="",y="",fill="Gender") + #fill=“”更改图例的名称 + theme(legend.position=c(.1,.8)) #图例的左上角分别距离边缘10%和底部边缘80%
ggplot2包使用标尺把数据空间的观察值映射可视化的空间中,标尺既能够应用年到连续的变量,也能够应用到离散的变量图片
#一个连续性的标尺把 yrs.since.phd 变量的数值映射到 x 轴,同时将 salary的变量映射到 y 轴 > ggplot(mtcars, aes(x=wt, y=mpg, size=disp)) + #size = disp 生成连续变量disp(发动机排量)的标尺,并使用它控制点的尺寸 + geom_point(shape=21, color="black", fill="cornsilk") + + labs(x="Weight", y="Miles Per Gallon", + title="Bubble Chart", size="Engine\nDisplacement")
> data(Salaries, package="car") > ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary, color=rank)) + + scale_color_manual(values=c("orange", "olivedrab", "navy")) + #scale_color_manual() 函数设定三个学术等级的点的颜色 + geom_point(size=2)
薪水与助理教授、副教授、教授经验对比散点图,点的颜色是人为指定的ip
经过scale_color_brewer() 和 scale_fill_brewer() 函数来预先指定分得清的颜色集ci
> ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary, color=rank)) + + scale_color_brewer(palette="Set1") + geom_point(size=2) #可将 Set1 改为 Set二、Set三、Pastel一、Pastel二、Paired、Dark2或Accent
> library(RColorBrewer) > display.brewer.all() #得到颜色集
theme()函数element
> data(Salaries, package="car") > library(ggplot2) > mytheme <- theme(plot.title=element_text(face="bold.italic", #指定图的标题应该为粗斜体棕色14号 + size="14", color="brown"), + axis.title=element_text(face="bold.italic", #轴的标题为粗斜体的棕色10号字 + size=10, color="brown"), + axis.text=element_text(face="bold", size=9, #轴标签为粗体的深蓝色9号 + color="darkblue"), + panel.background=element_rect(fill="white", #图片区域有白色的填充和深蓝色的边框 + color="darkblue"), + panel.grid.major.y=element_line(color="grey", #主水平网格应该是灰色的实线 + linetype=1), + panel.grid.minor.y=element_line(color="grey", #次水平网格应该是灰色的虚线 + linetype=2), + panel.grid.minor.x=element_blank(), #垂直网格不输出 + legend.position="top") #图例展现在顶部 #设置完成后使用 myeheme > ggplot(Salaries, aes(x=rank, y=salary, fill=sex)) + + geom_boxplot() + + labs(title="Salary by Rank and Sex", + x="Rank", y="Salary") + # +mytheme 使用以前 mytheme设置的内容 + mytheme
ggplot2中将多个图放到单个图形中最简单的使用方式是 gridExtra包中的grid.arrange()函数
#先将图都保存为一个对象,而后用grid.arrange() > data(Salaries, package="car") > library(ggplot2) > p1 <- ggplot(data=Salaries, aes(x=rank)) + geom_bar() > p2 <- ggplot(data=Salaries, aes(x=sex)) + geom_bar() > p3 <- ggplot(data=Salaries, aes(x=yrs.since.phd, y=salary)) + geom_point() > library(gridExtra) > grid.arrange(p1, p2, p3, ncol=3)
ggplot(data=mtcars, aes(x=mpg)) + geom_histogram() ggsave(file="my.png",plot=myplot,width=5,height=4) #在当前路径下将 my.png 的5英寸*4英寸(12.7厘米*10.2厘米)PNG格式的图片,可设定扩展名为ps\tex\jpeg\pdf\pg\bmp\svg或wmf,其中wmf文件仅限Windows系统 #若是忽略 plot=选项,最近建立的图形会被保存 ggplot(data=mtcars, aes(x=mpg)) + geom_histogram() ggsave(file="mygraph.pdf") #保存mygraph.pdf到磁盘