我可以使用什么函数来模拟ggplot2的默认调色板以获得所需数量的颜色.例如,输入3将生成具有以下颜色的HEX颜色的字符向量:
Possible Duplicate:
How to extract the fill colours from a ggplot object?
In an arbitrary ggplot plot, say
p <- ggplot(data=PlantGrowth, aes(x=group, y=weight, fill=group)) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
有没有办法提取所用颜色的代码(即我们用命令修改的名为"values"的变量
p + scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))
Run Code Online (Sandbox Code Playgroud)
)?
我想获得使用的颜色,以便只修改一个.
谢谢,
弗朗索瓦
我需要使用 ggplot2 中的 shapefile 来进行scale_fill_manual 的帮助。我尝试了很多事情,终于发布了,希望有人能给我提示。我基本上正在绘制一个 shapefile 并使用 scale_fill_manual 用自定义颜色对其进行可视化,然后在其上覆盖一些点,但是当我尝试在图例中包含我的新点时,我的原始颜色在那里,但值都弄乱了。绘制形状文件的上部工作正常,但覆盖新点时的底部是我需要帮助的地方。我内嵌了一些评论。如下:shapefile的下载路径为: https://login.filesanywhere.com/fs/v.aspx ?v=8c6a66875b6574bbaa68
library(tidyverse)
library(rgdal)
library(maptools)
library(plyr)
library(sp)
library(geosphere)
library(data.table)
library(rgeos)
wolves.map <- readOGR(dsn=".", layer="PNW_wolf_habitat_grid")
message(proj4string(wolves.map)) # it is in Albers Equal Area projection.
#Select presence/abscense only (1 and 0)
wolfsub <- wolves.map[!wolves.map$WOLVES_99 %in% 2,]
wolfsub$MAJOR_LC <-as.numeric(as.character(wolfsub$MAJOR_LC))
# Add columns to the wolfsub dataset. 42 = Forest, 51 = Shrub, > 81 = Agriculture
wolfsub$Forest<-ifelse(wolfsub$MAJOR_LC==42,1,0)
wolfsub$Shrub<-ifelse(wolfsub$MAJOR_LC==51,1,0)
wolfsub$Agriculture <- ifelse(wolfsub$MAJOR_LC > 81,1,0)
# create the model
mod1<-glm(WOLVES_99 ~ RD_DENSITY + Forest + …
Run Code Online (Sandbox Code Playgroud) 我感兴趣的是自动将 ggplot2 对象的图例提取为表格(而不是图形对象)。我们用一个例子来说明:
p <- ggplot(iris, aes(x=Sepal.Length, y= Petal.Length, color=Species)) +
geom_point()
p
Run Code Online (Sandbox Code Playgroud)
现在有一个上一个问题,它展示了如何提取图中使用的颜色:
g <- ggplot_build(p)
unique(g$data[[1]]["colour"])
colour
1 #F8766D
51 #00BA38
101 #619CFF
Run Code Online (Sandbox Code Playgroud)
但我也对这些颜色在图例中对应的标签感兴趣,即我感兴趣的最终结果如下表:
colour label
#F8766D setosa
#00BA38 versicolor
#619CFF virginica
Run Code Online (Sandbox Code Playgroud)