- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ggplot 在 R 中创建图表,我需要一个图例来描述不同的文本标签是什么。数据集(pfdavar)如下:
pfdavar <- read.table(header=TRUE,row.names=1,text="
Scientific_Name X1 X2 Function Labels Species
Accipiter_gentilis1 -4.89789193 -4.647159032 Carnivore 1 Accipiter_gentilis
Accipiter_gentilis2 -4.85572869 -4.136258682 Carnivore 1 Accipiter_gentilis
Accipiter_gentilis3 -4.53679492 -1.800944748 Carnivore 1 Accipiter_gentilis
Accipiter_gentilis4 -6.09443847 -0.959612873 Carnivore 1 Accipiter_gentilis
Accipiter_gentilis5 -6.05461651 -4.960788555 Carnivore 1 Accipiter_gentilis
Acciptiter_nisus1 -3.41413514 -0.895822312 Carnivore 2 Accipiter_nisus
Acciptiter_nisus2 -3.19652756 -0.888246165 Carnivore 2 Accipiter_nisus
Acciptiter_nisus3 -3.12483784 -0.999500166 Carnivore 2 Accipiter_nisus
Acciptiter_nisus4 -2.66618148 -2.960531036 Carnivore 2 Accipiter_nisus
Acciptiter_nisus5 -3.54795755 -2.818834269 Carnivore 2 Accipiter_nisus
Acciptiter_nisus6 -3.25976501 -2.356532832 Carnivore 2 Accipiter_nisus
Acciptiter_nisus7 -3.37935944 -1.968577396 Carnivore 2 Accipiter_nisus
Acciptiter_nisus8 -3.0595512 -2.562750671 Carnivore 2 Accipiter_nisus
Acciptiter_nisus9 -3.27594514 -1.773717162 Carnivore 2 Accipiter_nisus
Acciptiter_nisus10 -3.28664004 -2.111224987 Carnivore 2 Accipiter_nisus
Aix_sponsa1 -1.4390108 1.536380546 Omnivore 3 Aix_sponsa
Aix_sponsa2 -2.17774592 1.419977832 Omnivore 3 Aix_sponsa
Aix_sponsa3 -0.73377916 1.652091362 Omnivore 3 Aix_sponsa
Aix_sponsa4 -0.68365602 1.748682677 Omnivore 3 Aix_sponsa
Aix_sponsa5 -1.02730778 1.868245903 Omnivore 3 Aix_sponsa
Aix_sponsa6 -1.37813364 1.974331359 Omnivore 3 Aix_sponsa
Aix_sponsa7 -0.74135489 1.427638468 Omnivore 3 Aix_sponsa
Aix_sponsa8 -0.58858907 1.004532252 Omnivore 3 Aix_sponsa
Aix_sponsa9 -1.1451094 1.769762482 Omnivore 3 Aix_sponsa
Aix_sponsa10 -1.28796936 1.929869081 Omnivore 3 Aix_sponsa
Anas_crecca1 -1.35096092 1.419587444 Omnivore 4 Anas_crecca
Anas_crecca2 -1.15412046 1.551324297 Omnivore 4 Anas_crecca
Anas_crecca3 -0.46402248 1.09274552 Omnivore 4 Anas_crecca
Anas_crecca4 -0.45462158 1.766419599 Omnivore 4 Anas_crecca
Anas_crecca5 0.13085385 1.373888208 Omnivore 4 Anas_crecca
Anas_crecca6 -0.25686211 2.229749359 Omnivore 4 Anas_crecca
Anas_crecca7 -0.9650909 1.296567761 Omnivore 4 Anas_crecca
Anas_crecca8 -1.26040491 1.981659794 Omnivore 4 Anas_crecca
Anas_crecca9 -1.03942764 1.489003168 Omnivore 4 Anas_crecca
Anas_crecca10 -0.97216996 1.336046865 Omnivore 4 Anas_crecca
Apus_apus1 1.88334138 -0.100251918 Insectivore 5 Apus_apus
Apus_apus2 0.75592041 -0.934233835 Insectivore 5 Apus_apus
Apus_apus3 0.71275049 -1.327860015 Insectivore 5 Apus_apus
Apus_apus4 1.1990241 0.399503737 Insectivore 5 Apus_apus
Apus_apus5 2.14285406 0.39050903 Insectivore 5 Apus_apus
Apus_apus6 2.26623205 1.082865398 Insectivore 5 Apus_apus
Apus_apus7 2.19534512 1.170083188 Insectivore 5 Apus_apus
Apus_apus8 1.82943832 0.353572547 Insectivore 5 Apus_apus
Apus_apus9 1.32492464 -0.005098561 Insectivore 5 Apus_apus
Apus_apus10 3.33227261 -0.172660264 Insectivore 5 Apus_apus
Branta_bernicla1 -2.59541115 0.403284268 Graminivore 6 Branta_bernicla
Branta_bernicla2 -2.29101252 0.518276194 Graminivore 6 Branta_bernicla
Branta_bernicla3 -3.75432432 1.051798493 Graminivore 6 Branta_bernicla
Branta_bernicla4 -2.46565059 0.450162234 Graminivore 6 Branta_bernicla
Branta_bernicla5 -2.27965667 -0.298584584 Graminivore 6 Branta_bernicla
Branta_bernicla6 -2.52807499 0.221669554 Graminivore 6 Branta_bernicla
Branta_bernicla7 -3.19899834 -0.439541025 Graminivore 6 Branta_bernicla
Branta_bernicla8 -2.9235117 0.835465853 Graminivore 6 Branta_bernicla
Branta_bernicla9 -2.1349146 -0.461085227 Graminivore 6 Branta_bernicla
Branta_bernicla10 -2.72727687 0.858812955 Graminivore 6 Branta_bernicla
Branta_canadensis1 -2.61921103 0.197699691 Graminivore 7 Branta_canadensis
Branta_canadensis2 -1.84266453 -1.407186966 Graminivore 7 Branta_canadensis
Branta_canadensis3 -2.29562301 -0.538735389 Graminivore 7 Branta_canadensis
Branta_canadensis4 -1.57554385 0.566449848 Graminivore 7 Branta_canadensis
Bucephala_islandica1 -2.81886145 2.917895842 Omnivore 8 Bucephala_islandica
Bucephala_islandica2 -2.04171303 2.417351605 Omnivore 8 Bucephala_islandica
Bucephala_islandica3 -3.63391644 2.565876003 Omnivore 8 Bucephala_islandica
Bucephala_islandica4 -2.76309326 2.485341013 Omnivore 8 Bucephala_islandica
Bucephala_islandica5 -2.9319585 3.029284674 Omnivore 8 Bucephala_islandica
Caprimulgus_climacurus1 2.97008877 -0.649580557 Insectivore 9 Caprimulgus_climacurus
Caprimulgus_climacurus2 4.39486789 -0.729532552 Insectivore 9 Caprimulgus_climacurus
Caprimulgus_climacurus3 4.5143613 -0.226964193 Insectivore 9 Caprimulgus_climacurus
Caprimulgus_europaeus1 5.44615841 -1.021666961 Insectivore 10 Caprimulgus_europaeus
Caprimulgus_europaeus2 5.02364267 -0.890099077 Insectivore 10 Caprimulgus_europaeus
Caprimulgus_europaeus3 5.21067804 -1.578068157 Insectivore 10 Caprimulgus_europaeus
Clanga_clanga1 -4.29958313 -4.522075437 Carnivore 11 Clanga_clanga
Clanga_clanga2 -5.39490832 -4.828912341 Carnivore 11 Clanga_clanga
Clanga_pomarina1 -4.38077048 -2.784564708 Carnivore 12 Clanga_pomarina
Clanga_pomarina2 -4.6561379 -4.252797443 Carnivore 12 Clanga_pomarina
Clanga_pomarina3 -5.48538959 -3.579093142 Carnivore 12 Clanga_pomarina
Delichon_urbicum1 2.2925 0.430657351 Insectivore 13 Delichon_urbicum
Delichon_urbicum2 1.54099519 1.459719746 Insectivore 13 Delichon_urbicum
Delichon_urbicum3 0.99773878 0.274581581 Insectivore 13 Delichon_urbicum
Delichon_urbicum4 1.24467923 1.236789373 Insectivore 13 Delichon_urbicum
Delichon_urbicum5 0.53504479 0.154682421 Insectivore 13 Delichon_urbicum
Delichon_urbicum6 1.53214527 0.91890228 Insectivore 13 Delichon_urbicum
Delichon_urbicum7 1.49818001 1.089675735 Insectivore 13 Delichon_urbicum
Delichon_urbicum8 0.67390299 0.753096969 Insectivore 13 Delichon_urbicum
Delichon_urbicum9 1.93683118 0.918165987 Insectivore 13 Delichon_urbicum
Delichon_urbicum10 1.58513146 1.564374345 Insectivore 13 Delichon_urbicum
Hirundo_rustica1 2.62925523 1.651726581 Insectivore 14 Hirundo_rustica
Hirundo_rustica2 2.14444347 2.273743756 Insectivore 14 Hirundo_rustica
Hirundo_rustica3 2.44316384 1.305086968 Insectivore 14 Hirundo_rustica
Hirundo_rustica4 3.15948914 1.458235727 Insectivore 14 Hirundo_rustica
Hirundo_rustica5 2.45355055 1.365638627 Insectivore 14 Hirundo_rustica
Hirundo_rustica6 3.06169729 1.275884535 Insectivore 14 Hirundo_rustica
Hirundo_rustica7 2.38793666 1.636555833 Insectivore 14 Hirundo_rustica
Hirundo_rustica8 2.66767101 0.645046239 Insectivore 14 Hirundo_rustica
Hirundo_rustica9 3.71351475 1.661709624 Insectivore 14 Hirundo_rustica
Hirundo_rustica10 2.93209807 0.734178456 Insectivore 14 Hirundo_rustica
Mergus_merganser1 0.29942933 -2.433390971 Piscivore 15 Mergus_merganser
Mergus_merganser2 0.98081612 -2.572393002 Piscivore 15 Mergus_merganser
Mergus_merganser3 0.72001717 -2.569943671 Piscivore 15 Mergus_merganser
Mergus_merganser4 0.46411239 -2.786791001 Piscivore 15 Mergus_merganser
Mergus_merganser5 -0.44219165 -1.601086246 Piscivore 15 Mergus_merganser
Mergus_merganser6 -0.46454582 -1.360541224 Piscivore 15 Mergus_merganser
Mergus_merganser7 -1.15574664 -2.601269214 Piscivore 15 Mergus_merganser
Mergus_merganser8 0.16982656 -2.97723875 Piscivore 15 Mergus_merganser
Spatula_clypeata1 6.07310551 -2.358533867 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata2 7.22049562 -3.37755176 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata3 6.50789136 -2.300145446 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata4 5.47730013 -2.176186104 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata5 5.53559984 -2.405227327 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata6 7.97963585 -2.70056017 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata7 6.71942913 -1.932583426 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata8 5.81775012 -2.058246029 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata9 7.20591453 -2.997222777 Filter-feeder 16 Spatula_clypeata
Spatula_clypeata10 8.01402202 -3.384188559 Filter-feeder 16 Spatula_clypeata
Tachymarptis_melba1 4.93212078 -0.758952678 Insectivore 17 Tachymarptis_melba
Tadorna_tadorna1 -1.03512249 4.286499709 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna2 0.45753486 3.348021245 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna3 0.08608732 4.270813056 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna4 -1.43964831 3.38875373 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna5 -0.96090197 4.416417469 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna6 -0.40120783 3.807289885 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna7 -0.90882097 4.452652604 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna8 -0.4036924 4.103030427 Omnivore 18 Tadorna_tadorna
Tadorna_tadorna9 -0.46248229 4.198274967 Omnivore 18 Tadorna_tadorna
")
library(ggplot2)
library(dplyr)
groups<-pfdavar$Function
labels<-pfdavar$Labels
species<-pfdavar$Species
find_hull <- function(df) df[chull(df$X1, df$X2), ]
hulls <- plyr::ddply(pfdavar, "groups", find_hull)
pfda_plot <- ggplot(data=pfdavar,aes(x=X1,y=X2,group=groups))+
geom_point(aes(colour=groups))+
geom_polygon(data=hulls,alpha=0.2,aes(fill=groups))+
xlab("pFDA1")+
ylab("pFDA2")+
geom_text(aes(label=labels,fontface=1),hjust=0,vjust=0,size=3)+
theme_classic()+
theme(legend.title=element_blank())
pfda_plot
最佳答案
geom_text 的图例只能通过颜色调用,并且您已经在 geom_points() 中使用了它。
为了获得您喜欢的绘图,并保持当前的配色方案,让我们尝试使用 ggnewscale
添加一个新的色标。我们仍然将您的所有文本设为黑色(请参阅 scale_color_manual):
library(ggplot2)
library(grid)
library(ggnewscale)
pfda_plot <- ggplot(data=pfdavar,aes(x=X1,y=X2,group=groups))+
geom_point(aes(colour=groups))+
geom_polygon(data=hulls,alpha=0.2,aes(fill=groups))+
xlab("pFDA1")+
ylab("pFDA2")+
theme_classic()+
theme(legend.title=element_blank())+
new_scale_color()+
geom_text(aes(label=labels,col=Species),
fontface=1,hjust=0,vjust=0,size=3)+
scale_color_manual(values=rep("black",18))
g <- ggplotGrob(pfda_plot)
lbls <- 1:18
idx <- which(sapply(g$grobs[[15]][[1]][[1]]$grobs,function(i){
"label" %in% names(i)}))
for(i in 1:length(idx)){
g$grobs[[15]][[1]][[1]]$grobs[[idx[i]]]$label <- lbls[i]
}
grid.draw(g)
关于r - 使用文本标签作为图例键为 geom_text 添加新图例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59091627/
我正在从 Stata 迁移到 R(plm 包),以便进行面板模型计量经济学。在 Stata 中,面板模型(例如随机效应)通常报告组内、组间和整体 R 平方。 I have found plm 随机效应
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我想要求用户输入整数值列表。用户可以输入单个值或一组多个值,如 1 2 3(spcae 或逗号分隔)然后使用输入的数据进行进一步计算。 我正在使用下面的代码 EXP <- as.integer(rea
当 R 使用分类变量执行回归时,它实际上是虚拟编码。也就是说,省略了一个级别作为基础或引用,并且回归公式包括所有其他级别的虚拟变量。但是,R 选择了哪一个作为引用,以及我如何影响这个选择? 具有四个级
这个问题基本上是我之前问过的问题的延伸:How to only print (adjusted) R-squared of regression model? 我想建立一个线性回归模型来预测具有 15
我在一台安装了多个软件包的 Linux 计算机上安装了 R。现在我正在另一台 Linux 计算机上设置 R。从他们的存储库安装 R 很容易,但我将不得不使用 安装许多包 install.package
我正在阅读 Hadley 的高级 R 编程,当它讨论字符的内存大小时,它说: R has a global string pool. This means that each unique strin
我们可以将 Shiny 代码写在两个单独的文件中,"ui.R"和 "server.R" , 或者我们可以将两个模块写入一个文件 "app.R"并调用函数shinyApp() 这两种方法中的任何一种在性
我正在使用 R 通过 RGP 包进行遗传编程。环境创造了解决问题的功能。我想将这些函数保存在它们自己的 .R 源文件中。我这辈子都想不通怎么办。我尝试过的一种方法是: bf_str = print(b
假设我创建了一个函数“function.r”,在编辑该函数后我必须通过 source('function.r') 重新加载到我的全局环境中。无论如何,每次我进行编辑时,我是否可以避免将其重新加载到我的
例如,test.R 是一个单行文件: $ cat test.R # print('Hello, world!') 我们可以通过Rscript test.R 或R CMD BATCH test.R 来
我知道我可以使用 Rmd 来构建包插图,但想知道是否可以更具体地使用 R Notebooks 来制作包插图。如果是这样,我需要将 R Notebooks 编写为包小插图有什么不同吗?我正在使用最新版本
我正在考虑使用 R 包的共享库进行 R 的站点安装。 多台计算机将访问该库,以便每个人共享相同的设置。 问题是我注意到有时您无法更新包,因为另一个 R 实例正在锁定库。我不能要求每个人都关闭它的 R
我知道如何从命令行启动 R 并执行表达式(例如, R -e 'print("hello")' )或从文件中获取输入(例如, R -f filename.r )。但是,在这两种情况下,R 都会运行文件中
我正在尝试使我当前的项目可重现,因此我正在创建一个主文档(最终是一个 .rmd 文件),用于调用和执行其他几个文档。这样我自己和其他调查员只需要打开和运行一个文件。 当前设置分为三层:主文件、2 个读
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
我的 R 包中有以下描述文件 Package: blah Title: What the Package Does (one line, title case) Version: 0.0.0.9000
有没有办法更有效地编写以下语句?accel 是一个数据框。 accel[[2]]<- accel[[2]]-weighted.mean(accel[[2]]) accel[[3]]<- accel[[
例如,在尝试安装 R 包时 curl作为 usethis 的依赖项: * installing *source* package ‘curl’ ... ** package ‘curl’ succes
我想将一些软件作为一个包共享,但我的一些脚本似乎并不能很自然地作为函数运行。例如,考虑以下代码块,其中“raw.df”是一个包含离散和连续类型变量的数据框。函数“count.unique”和“squa
我是一名优秀的程序员,十分优秀!