ggplot2添加标签、注释。更改主题、图例、保存

ggplot2添加标签

  • 一、标签
    • 1.添加图形主标题
    • 2.添加副标题
    • 3.添加x轴和y轴的标题
    • 3.如果标题是数学公式怎么办?
    • 4. 散点图点形状的的参数
    • 5.线图`geom_line(lty=)`的参数
  • 二、添加注释
    • 1.注释
    • 2.使用ggrepel包避免数据标签的重叠
  • 三、在原本的图形中添加直线
  • 四、调整坐标轴的刻度
  • 五、调整图例
  • 六、主题
  • 七、图片的保存
    • 1.保存图片保存图片
    • 2.如果显示不了中文

一、标签

以r语言自带的数据包mpg为例,mpg包含了由美国环境保护协会收集的38种车型的观测数据。
ggplot2添加标签、注释。更改主题、图例、保存_第1张图片
要想将探索性图形转换为解释性图形,最容易的方法就是加上一些合适的标签。我们可以使用labs()函数来添加标签,以下示例为图形添加了一个标题

1.添加图形主标题

ggplot(mpg,aes(displ,hwy))+
  geom_point(aes(color=class))+
  geom_smooth(se=F)+
  labs(title = paste("Fuel efficiency generally decreases with","engine size"))

其中paste函数是的作用是,把中间的逗号去掉,比如
在这里插入图片描述
ggplot2添加标签、注释。更改主题、图例、保存_第2张图片
这样就添加了主标题

2.添加副标题

• subtitle可以在标题下以更小的字体添加更多附加信息。
• caption可以在图形右下角添加文本,常用于描述数据来源:

ggplot(mpg,aes(displ,hwy))+
  geom_point(aes(color=class))+
  geom_smooth(se=F)+
  labs(title = paste("Fuel efficiency generally decreases with","engine size"
  ),subtitle=" 这是副标题",caption="统计局")

ggplot2添加标签、注释。更改主题、图例、保存_第3张图片

3.添加x轴和y轴的标题

ggplot(mpg,aes(displ,hwy))+
  geom_point(aes(color=class))+
  geom_smooth(se=F)+
  labs(x="这是x轴",y="这是y轴")

ggplot2添加标签、注释。更改主题、图例、保存_第4张图片

3.如果标题是数学公式怎么办?

ggplot(c,aes(a,b))+geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))

ggplot2添加标签、注释。更改主题、图例、保存_第5张图片

4. 散点图点形状的的参数

ggplot2添加标签、注释。更改主题、图例、保存_第6张图片

geom_point(shape=15)#等于15就是正方形

5.线图geom_line(lty=)的参数

ggplot2添加标签、注释。更改主题、图例、保存_第7张图片

lty=2就是虚线

二、添加注释

1.注释

先使用dplyr选取出每类汽车中效率最高的型号,然后在图形中标记出来:

best<- mpg %>%  group_by(class) %>%  filter(row_number(desc(hwy)) == 1) 
ggplot(mpg, aes(displ, hwy)) + 
    geom_point(aes(color = class)) +  
    geom_label(  aes(label = model), data=best,  nudge_y = 2,  alpha = 0.5  )

ggplot2添加标签、注释。更改主题、图例、保存_第8张图片
这样就添加了标签,但是观察发现,这些数据标签还有重复的地方,下面使用ggrepel包避免数据的重叠

2.使用ggrepel包避免数据标签的重叠

先下载这个包

install.packages("ggrepel")
library(ggrepel)

只需要把geom_label改为geom_label_repel

ggplot(mpg, aes(displ, hwy)) + 
  geom_point(aes(color = class)) +  
  geom_label_repel(  aes(label = model), data=best , nudge_y = 2,  alpha = 0.5  )

ggplot2添加标签、注释。更改主题、图例、保存_第9张图片
这样就完成啦!

三、在原本的图形中添加直线

• 可以使用geom_hline()和geom_vline()函数添加参考线。我们经常使用加粗(size = 2)和白色(color = white)的直线作为参考线,并将它们绘制在基本数据层的下面。这样的参考线既清晰可见,又不至于喧宾夺主,影响我们查看数据。
以那个函数 y = x 2 y=x^2 y=x2为例
geom_hline(yintercept=10),添加一条横线,y=10
geom_vline(xintercept=8),添加一条竖线,x=8
geom_abline(slope=2,intercept=3).添加 y = 2 x + 3 y=2x+3 y=2x+3这条线

a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  geom_hline(yintercept=15,size=2)+
  geom_vline(xintercept = 8,color=2)+
  geom_abline(slope=2,intercept=3)

这里size的值越大,添加的线条越粗
color的参数可以自己设置
ggplot2添加标签、注释。更改主题、图例、保存_第10张图片

四、调整坐标轴的刻度

从上面那张图可以看到,y轴是从0开始的,每个网格的间隔是12.5,现在我想让y从1开始,间隔为5

a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  scale_y_continuous(breaks = seq(1,100,5))

其中seq(x,y,z)是是产生一个从x开始,间隔为z,小于等于y的向量,因为间隔可能不能整除z
ggplot2添加标签、注释。更改主题、图例、保存_第11张图片
如果也想更改x坐标轴的刻度,那还是一样的操作

a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b,color=))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  scale_y_continuous(breaks = seq(1,100,5))+
  scale_x_continuous(breaks = seq(1,10,2))

ggplot2添加标签、注释。更改主题、图例、保存_第12张图片

五、调整图例

如何把图例调到自己想要的位置呢?
ggplot2添加标签、注释。更改主题、图例、保存_第13张图片
这就需要theme(legend.position=“位置”),位置这里可以选择下面四个:
bottom放在底部,top放在顶部,right放在左面,right放在右面(默认)
当然你也可以选择legend.positon = "none"来取消整个图例的显示。

a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b,color=a))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  theme(legend.position = "bottom")
  

ggplot2添加标签、注释。更改主题、图例、保存_第14张图片
bottom放在底部,top放在顶部,right放在左面,right放在右面(默认)

六、主题

theme_bw()可以更改图片的主题

a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b,color=a))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  theme_bw()

ggplot2添加标签、注释。更改主题、图例、保存_第15张图片
ggplot2添加标签、注释。更改主题、图例、保存_第16张图片
除此之外,你还可以在ggthemes扩展包里找到更多标题
https://jrnold.github.io/ggthemes/

比如:

library(ggthemes)
a<-c(1:10);b<-a*a
c<-data.frame(a,b)
ggplot(c,aes(a,b,color=a))+
  geom_point()+labs(x=quote(x[i]),y=quote(x[i]^2))+
  theme_economist()
  

ggplot2添加标签、注释。更改主题、图例、保存_第17张图片
其他的可以在我的这篇文章里找到
R语言ggplot2更改主题

七、图片的保存

1.保存图片保存图片

需要用到ggsave

ggsave("1.pdf") 

这样就把图片保存到了你的工作目录里

2.如果显示不了中文

这时就需要用到showtext包
只需要这么三行代码(如果你已经下载了的话)

library(showtext)
font_add("STKAITI","C:/windows/Font/STKAITI.ttf")
showtext_auto()#自动调用showtext

STKAITI是我想使用的字体,后面是我的工作路径

如果你在使用Rmarkdown
控制图形大小的选项主要有5个:fig.width、fig.height、fig.asp、out.width和out.height
• 我们发现,宽度一致的图形是最令人赏心悦目的。为了使图形宽度保持一致,我们设置图形的默认参数为fig.width = 6(6英寸)和fig.asp = 0.618(黄金分割)。在单个代码段中,我们只调整fig.asp
• 我们使用out.width控制输出图形的大小,并将其设置为行宽的百分比。默认设置为out.width = "70%"和fig.align = "center"。这样一来,图形既不会占用过多空间,也不会显得太拥挤
• 如果想在一行中放置多个图形,可以将out.width设置为50%以放置2个图形、设置为33%以放置3个图形,或者设置为25%以放置4个图形,同时还要设置fig.align = "default"。按照具体的说明方式(例如,是要展示数据还是要展示图形),我们也会根据情况调整fig.width,后面还会继续讨论这点。
如果你发现必须眯起眼睛才能看清图形上的文本,那么就需要调整fig.width参数。如果fig.width大于最终文档中的图形的尺寸,那么文本就会显得过小;如果fig.width小于最终文档中的图形的尺寸,那么文本就会显得过大。一般来说,你需要试验几次才能找到fig.width和最终文档中的图形的最佳比例。
本文来源

你可能感兴趣的:(ggplot2,r语言,开发语言)