使用ggplot2+;基于单独的列向每行添加点;linerange()
我有一个线性范围图,显示了一段时间内看到的鸟类及其饮食 使用下面的示例,我想在标题为使用ggplot2+;基于单独的列向每行添加点;linerange(),r,ggplot2,R,Ggplot2,我有一个线性范围图,显示了一段时间内看到的鸟类及其饮食 使用下面的示例,我想在标题为时间段的列的基础上再添加一层,该列将数据分为3个级别:20年。然而,我被卡住了。我想: 根据time\u period列,在每行旁边添加一个彩色点(理想情况下与行大小相同) 在下面添加一个图例,显示每个点的含义 数据集取自,如下所示(感谢Stephen Henderson,他正确地指出我之前附加了错误的数据集-这与用于线条图的数据集相同): 让我们看看这是否适合你(如果这是你正在寻找的) 我已经添加了一个geom
时间段
的列的基础上再添加一层,该列将数据分为3个级别:20年
。然而,我被卡住了。我想:
time\u period
列,在每行旁边添加一个彩色点(理想情况下与行大小相同)让我们看看这是否适合你(如果这是你正在寻找的) 我已经添加了一个geom_point()层,位于与时间段列匹配的填充aes的行旁边(注意csv中的所有数据都处于相同的因子级别)。将aes设置为“填充”,然后将其设置为“形状21”,以避免与颜色aes产生混乱,因为它已经存在于前一层中的不同变量中
库(tidyverse)
图书馆(韦斯安德森)
df%>%
ggplot()+
几何线范围(aes(ymin=minyear,ymax=maxyear,
颜色=因子(饮食),
x=fct_重新排序(因子(id)、描述(排序)),
尺寸=1)+
几何点(aes(x=fct\U重新排序(因子(id),描述(排序)),y=最大年份+1,填充=时间段),
show.legend=TRUE,pch=21,color=“白色”,size=1)+
比例颜色手册(值=wes调色板(“Cavalcanti1”))+
实验室(x=NULL,y=NULL)+
主题_bw()+
coord_flip()+
导轨(颜色=F)+
主题(panel.grid.minor=element_blank(),
panel.grid.major.y=元素_blank(),
panel.grid.major.x=元素线(),
axis.ticks=元素_blank(),
legend.position=“底部”,
panel.border=元素_blank(),
legend.title=元素_blank(),
axis.title.y=元素_blank(),
axis.text.y=元素_blank(),
axis.ticks.y=元素_blank(),
plot.title=元素\文本(大小=20,vjust=1,hjust=0),
axis.text=元素\文本(大小=16),
axis.title=元素\文本(大小=20))
Hi Aaumai,谢谢你的帮助,效果很好!刚刚尝试过这个,我意识到它看起来有点混乱,所有的点在不同的点-你认为有可能把它们都放在最后(最右边)?你可以在geom_point玩y aes。如果将其设置为max(maxyear),它们将向右对齐。我只是尝试使用不同的值,看看什么看起来更好。当然,对不起,我没有想清楚-它工作得很好!
# A tibble: 200 x 18
decimal.latitude decimal.longitu~ class species.name id duration minyear maxyear
<dbl> <dbl> <chr> <chr> <fct> <dbl> <dbl> <dbl>
1 -54.6 159. Aves Aptenodytes~ 2283 10 1970 1980
2 -43.0 147. Aves Larus domin~ 8990 28 1980 2008
3 -43.0 147. Aves Larus novae~ 8992 25 1983 2008
4 -43.0 147. Aves Larus pacif~ 8991 28 1980 2008
5 -42.9 147. Aves Calidris fe~ 8940 33 1974 2007
6 -42.9 147. Aves Calidris ru~ 8942 34 1974 2008
7 -42.9 147. Aves Limosa lapp~ 8939 34 1974 2008
8 -42.9 147. Aves Numenius ma~ 8941 34 1974 2008
9 -42.9 147. Aves Tringa nebu~ 8938 34 1974 2008
10 -42.0 148. Aves Numenius ma~ 12022 12 1988 2000
# ... with 190 more rows, and 10 more variables: system <chr>, common.name <chr>,
# estimate <dbl>, std.error <dbl>, statistic <dbl>, p.value <dbl>, diet <fct>,
# mean_trend <dbl>, sort <dbl>, time_period <fct>
library(tidyverse)
library(wesanderson)
ggplot() +
geom_linerange(data = bird_models_traits, aes(ymin = minyear, ymax = maxyear,
colour = diet,
x = fct_reorder(id, desc(sort))),
size = 1) +
scale_colour_manual(values = wes_palette("Cavalcanti1")) +
labs(x = NULL, y = NULL) +
theme_bw() +
coord_flip() +
guides(colour = F) +
theme(panel.grid.minor = element_blank(),
panel.grid.major.y = element_blank(),
panel.grid.major.x = element_line(),
axis.ticks = element_blank(),
legend.position = "bottom",
panel.border = element_blank(),
legend.title = element_blank(),
axis.title.y = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
plot.title = element_text(size = 20, vjust = 1, hjust = 0),
axis.text = element_text(size = 16),
axis.title = element_text(size = 20))