R包RR语言做图

R语言ggstar包:给散点图的形状提供更多的选择

2021-05-09  本文已影响0人  小明的数据分析笔记本

R语言的ggplot2包画散点图如果想给不同的变量映射形状的话,可以选择的形状如下

image.png

这个虽然看起来有很多,但是个人认为可用的就只有4个,就是15,16,17,18,如果超过四个,搭配上其他的话就会有实心的和空心的,搭配到一起不太好看。而且还有一个问题,如果变量的分类超过6个,就会提示
Warning messages: 1: The shape palette can deal with a maximum of 6 discrete values because more than 6 becomes difficult to discriminate; you have 8. Consider specifying shapes manually if you must have them. 2: Removed 2 rows containing missing values (geom_point).

比如运行如下代码你就会遇到上面的提示

df<-data.frame(x=LETTERS[1:8],
               y=1:8)
library(ggplot2)

ggplot()+
  geom_point(data=df,aes(x=x,y=y,shape=x,fill=x),size=5)

大体的意思就是超过6个形状不太好区分,如果你非要用,就手动指定形状,这个时候需要叠加scale_shape_manual()函数

今天在看ggtreeExtra论文中的代码,发现其中提到了一个包是ggstar,找到帮助文档看了一下,主要的功能就是定义了新的函数geom_star()提供了更多的形状选择

帮助文档的链接

https://cran.r-project.org/web/packages/ggstar/vignettes/ggstar.html

github主页的链接

https://github.com/xiangpin/ggstar/

这里提供的形状包括

p1 <- show_starshapes()
p1+theme_void()
image.png

一个简单的用法

首先是安装和加载
install.packages("ggstar")
library(ggstar)
library(ggplot2)
准备绘图数据
df<-data.frame(x=LETTERS[1:8],
               y=1:8)
画图
ggplot()+
  geom_star(data=df,aes(x=x,y=y,starshape=x,fill=x),size=5)+
  theme_bw()
image.png

如果想要手动挑选形状,可以使用scale_starshape_manual()函数

ggplot()+
  geom_star(data=df,aes(x=x,y=y,starshape=x,fill=x),
            size=20)+
  theme_bw()+
  scale_starshape_manual(values = rep(16,8))
image.png
最后是一个有意思的简单小例子
ggplot()+
  geom_point(aes(x=1,y=1),shape=73,size=30,color="red")+
  geom_star(aes(x=1.5,y=1),starshape=16,size=30,fill="red")+
  geom_point(aes(x=2,y=1),shape=85,size=30,color="red")+
  xlim(0.9,2.2)+
  #theme_void()+
  theme(aspect.ratio = 0.5)
image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

上一篇下一篇

猜你喜欢

热点阅读