转自:九茶
[toc]
初始化图形
library(ggplot2)
dt = data.frame(A = 1:10, B = c(2,15,6,18,9,7,13,15,10,3), C = c('A','C','A','B','C','D','A','C','D','B'))
p = ggplot(dt, aes(x = A, y = B, color = C, group = factor(1))) +
geom_point(size = 3.8) +
geom_line(size = 0.8) +
geom_text(aes(label = B, vjust = 1.1, hjust = -0.5, angle = 45), show.legend= FALSE) ## 添加点的数值
p
注释:
geom_text:线图形中添加数值
vjust:柱条上文字的纵坐标的位置(垂直位置,以柱条顶面线为原点)
hjust:柱条上文字的横坐标的位置(水平位置,以柱条顶面线的中点为原点)
show.legend:此文本是否包含到图例之中(NA(default),FALSE,TRUE)
angle:角度
修改坐标轴的显示范围
p+xlim(min(dt$A,0)*1.5,max(dt$A)*1.5)+ylim(min(dt$B,0)*1.5,max(dt$B)*1.2)
注释:
xlim/ylim的用法和plot中的用法相同
p + scale_x_continuous(limits = c(-5,15))
注释:
scale_x/y_continuous:是对图形的x/y轴进行修饰的。
修改坐标轴的标签(内容、大小、字体、颜色、加粗、位置、角度)
p + scale_x_continuous(limits = c(-5,15))+
xlab("这是x轴")+
theme(axis.title.x=element_text(size=15,family="myFont",color="blue",face="bold",vjust=0.5,hjust=0.5,angle=45))
注释:
theme:是针对非数据的图形修整的,对于y轴可以使用axis.title.y设置相应的图形参数。
face取值:plain普通,bold加粗,italic斜体,bold.italic斜体加粗。
修改坐标轴的刻度标签
p + scale_x_continuous(breaks=dt$A, labels = dt$A*1000)
注释:
labels:修改了坐标刻度的显示。
修改坐标轴的刻度标签(大小、字体、颜色、加粗、位置、角度)
p + theme(axis.text.x = element_text(size = 15, family = "myFont", color = "green", face = "bold", vjust = 0.5, hjust = 0.5, angle = 45))
修改坐标轴的刻度间隔
p + scale_x_continuous(breaks=seq(0, 10, 5))## X 轴每隔 5 个单位显示一个刻度
去掉背景和网格线
p+theme_bw()+theme(panel.grid =element_blank())
注释:theme_bw:将背景变为了白色,但是网格线还在(一定要先将背景变为白色,在去掉网格线)
去掉坐标轴上的刻度标签
theme(panel.grid =element_blank()) + ## 删去网格线
theme(axis.text = element_blank()) ## 删去所有刻度标签
#theme(axis.text.y = element_blank()) ## 设置 axis.text.y 则只删去 Y 轴的刻度标签,X 轴同理。
去掉刻度线
theme(axis.ticks = element_blank()) ## 删去所有刻度线
# theme(axis.ticks.y = element_blank()) ## 设置 axis.ticks.y 则只删去 Y 轴的刻度线,X 轴同理
去掉外层边框
p+theme(panel.border = element_blank())
再加上X轴、Y轴(无刻度、无标签)
theme(axis.line = element_line(size=1, colour = “black”)) ## 再加上坐标轴(无刻度、无标签)
p+theme_bw()+
theme(panel.grid =element_blank())+
theme(axis.text = element_blank())+
theme(panel.border = element_blank())+
theme(axis.ticks = element_blank())+
theme(axis.line = element_line(size=1, colour = “black”)) ## 再加上坐标轴(无刻度、无标签)