相同的标题,完全重写了这个问题.
为什么alpha工作在第一个图而不是第二个?我很难理解为什么使用硬编码的值在正确的位置绘制rect而不是透明但是在data.frame中它按预期工作?
mtcars$cyl <- factor(mtcars$cyl)
mtcars$am <- factor(mtcars$am)
ggplot(mtcars) +
geom_density(aes(x=disp, group=cyl, fill=cyl), alpha=0.6, adjust=0.75) +
geom_rect(data=data.frame(xmin=100, xmax=200, ymin=0, ymax=Inf), aes(xmin=xmin, xmax=xmax, ymin=ymin,ymax=ymax), fill="red", alpha=0.2)
ggplot(mtcars) +
geom_density(aes(x=disp, group=cyl, fill=cyl), alpha=0.6, adjust=0.75) +
geom_rect(aes(xmin=100, xmax=200, ymin=0,ymax=Inf), fill="red", alpha=0.2)
Run Code Online (Sandbox Code Playgroud) 我有一张桌子,我想用ggplot2制作一个情节,到目前为止我还没有成功.我准备了一个看起来像这样的简化表
df1<-data.frame(Loc=c(rep("L1",5),rep("L2",3),rep("L3",4)),
Type=c(rep("T1",3),rep("T2",2),"T1","T2","T2","T1","T1","T2","T2"),
y2009=rep("A",12),y2010=c("A","B","A","A","A","A","B","B","A","A","B","B"),
y2011=c("B","B","B","A","B",rep("B",4),"A","B","B"))
df1
Run Code Online (Sandbox Code Playgroud)
Loc有3个位置.每个位置有2种类型的样本T1或T2.他们从2009年开始作为A,随着时间的推移,有些人成为B.因此,到2011年,有很多B.
这是我到目前为止的数字
ggplot(df1,aes(x=Type)) + geom_bar()+facet_grid(~Loc)
ggplot(df1,aes(x=y2009,fill=Type)) + geom_bar(position="dodge")+facet_grid(~Loc)
Run Code Online (Sandbox Code Playgroud)

我不太确定如何从三个因素中得到计数.
我想要一个类似于下面的数字,我粗略地在油漆中起草.facet是位置,我只为Loc1制作了条形图.

是否有可能改变单个分面图的格式?例如,使用下面的示例代码,可以更改cyl = 8图表的标题或背景颜色吗?
library(ggplot2)
ggplot(mtcars, aes(x=gear)) +
geom_bar(aes(y=gear), stat="identity", position="dodge") +
facet_wrap(~cyl)
Run Code Online (Sandbox Code Playgroud) 嗨,我在ggplot2中使用facet来绘制大量基因中表达的分布.我的绘图命令非常通用:
p <- ggplot(top_n,aes(x=value,fill=ptype))
p <- p + geom_density(alpha = 0.2)
p <- p + facet_wrap(~probe,...)
Run Code Online (Sandbox Code Playgroud)
他们只是将top_n中的数据绘制为根据ptype变量着色的分布.看起来不错.
然而,其中一些基因比其他基因更重要.例如,突出那些作为转录因子(TF)的基因真的很酷.一种方法是让我更改对应于TF的每个面的颜色标题框,或背景颜色,或类似的东西.
我有办法在每个方面设置图表的选项吗?
在p对象中挖掘并没有发现我可以使用的任何东西,尽管我可能遗漏了一些东西!
我想根据组修改构面背景的颜色.我不确定这是否可行.具体来说,我使用facet_grid(不facet_wrap)多层.
## Sample data
dat <- mtcars
## Add in some colors based on the data
dat$facet_fill_color <- c("red", "green", "blue", "yellow", "orange")[dat$gear]
## Create main plot
library(ggplot2)
P <- ggplot(dat, aes(x=cyl, y=wt)) + geom_point(aes(fill=hp)) + facet_grid(gear+carb ~ .)
## I can easily cahnge the background using:
P + theme(strip.background = element_rect(fill="red"))
Run Code Online (Sandbox Code Playgroud)
但是,我想为不同的组改变颜色.理想情况下,如下所示(当然不起作用)
P + theme(strip.background = element_rect(fill=dat$facet_fill_color))
P + theme(strip.background = element_rect(aes(fill=facet_fill_color)))
Run Code Online (Sandbox Code Playgroud)
小平面背景可以有多种颜色吗?
(相关,但不是上面的实际答案: ggplot2:基于数据集中变量的facet_wrap条带颜色)
我正在创建一个类似于以下的图矩阵
ggplot(mpg, aes(displ, hwy)) + geom_point() + facet_grid(rows = vars(cyl), cols = vars(drv))
Run Code Online (Sandbox Code Playgroud)
现在,我想有一些方法来突出显示一些单独的图,例如那些cyl是 5 或 6 以及drv是 的图f。因此,理想情况下,这可能看起来像这样:
但我也很高兴那些面板通过设置ggtheme为经典或类似而具有不同的外观。
然而,我非常不清楚如何修改通过生成的图矩阵中单独选择的图facet_grid
我正在寻找一种方法来facet_wrap处理同一%>%行中的不同主题,以获得类似的东西
有没有办法做类似的事情而不必做
fig1 = mtcars %>% filter(am == 1) %>%
ggplot(aes(wt, mpg)) +
geom_point() +
theme_bw(base_size = 15) + ggtitle('Theme A')
fig2 = mtcars %>% filter(am == 0) %>%
ggplot(aes(wt, mpg)) +
geom_point() +
theme_minimal(base_size = 15) + ggtitle('Theme B')
grid.arrange(fig1,fig2, ncol = 2)
Run Code Online (Sandbox Code Playgroud)
有没有办法facet在同一行代码中为参数显示不同的主题?
如果没有,即使只是为facet参数显示不同的颜色背景也会有所帮助。
我想根据特定列中给出的值为ggplot2 facet图的背景着色.使用我已经问过的先前问题的答案,我能够将我需要的东西拼凑在一起.@joran对这个问题的回答特别有用,因为它说明了创建一个单独的数据框以传递给ggplot的技术.
这一切都很好,给出了如下图所示的输出:

这是我用来生成上图的代码:
# User-defined variables go here
list_of_names <- c('aa','bb','cc','dd','ee','ff')
list_of_regions <- c('europe','north america','europe','asia','asia','japan')
# Libraries
require(ggplot2)
require(reshape)
# Create random data with meaningless column names
set.seed(123)
myrows <- 30
mydf <- data.frame(date = seq(as.Date('2012-01-01'), by = "day", length.out = myrows),
aa = runif(myrows, min=1, max=2),
bb = runif(myrows, min=1, max=2),
cc = runif(myrows, min=1, max=2),
dd = runif(myrows, min=1, max=2),
ee = runif(myrows, min=1, max=2),
ff = runif(myrows, min=1, max=2))
# Transform data frame from …Run Code Online (Sandbox Code Playgroud) 有没有办法对ggplot2 的facet_grid 中的facet 的名称或条形背景进行着色(不是实际网格的背景,正如这篇文章中所回答的: Conditionally Change panel background with facet_grid? )?
在以下示例中:
#create simple dataframe for plotting
xy <- data.frame(x = rep(1:10, times=3), y = rep(10:1, times=3), type = rep(LETTERS[1:2], each=5), type2 = rep(LETTERS[3:5], each=10), category = rep(c("control", "exp", "control"), each=10))
xy
#create base plot
plot <- ggplot(data = xy)+
geom_point(aes(x = x, y = y))+
facet_grid(type ~ type2)
#plot base plot
plot
Run Code Online (Sandbox Code Playgroud)
有没有办法根据分类变量(例如,我在上面指定的数据框中的“类别”,因此所有控件都有一个红色条,所有的 exp - 一个绿色条)?
提前致谢!
PS我实际上想做的是展示生物实验的结果:
每个基因的两个箱线图以显示变异性;基因名称在条带中
网格的背景是白色或灰色,灰色显示作为对照的基因
我想使用标题中文本的颜色来表示该基因在我的实验中是否重要(我需要在同一图中显示经过验证的基因和未经验证的基因)
首先,我还是初学者.我正在尝试用R解释并绘制一个堆栈条形图.我已经看过一些答案,但有些不是我的案例和其他我不明白的:
我有一个dvl包含五列的数据集,Variant,Region,Time,Person和PrecededByPrep.我想对Variant与其他四个预测变量进行多变量比较.每列可以具有两个可能值之一:
elk或ieder.VL或NL.time或no timeperson或no person1或0这是逻辑回归
从我收集的答案中,图书馆ggplot2可能是最好的绘图库.我已经阅读了它的文档,但对于我的生活,我无法弄清楚如何绘制这个:我怎样才能Variant与其他三个因素进行比较?
我花了一段时间,但我在Photoshop中做了类似于我想要的东西(虚构的价值观!).

深灰色/浅灰色:Variant
y轴的可能值:频率x轴:每列,细分为可能的值
我知道要制作单独的条形图,堆叠和分组,但基本上我不知道如何堆叠,分组条形图.ggplot2可以使用,但如果可以在没有我喜欢的情况下完成.
我认为这可以看作是一个样本数据集,但我并不完全确定.我是R的初学者,我读到了关于创建样本集的内容.
t <- data.frame(Variant = sample(c("iedere","elke"),size = 50, replace = TRUE),
Region = sample(c("VL","NL"),size = 50, replace = TRUE),
PrecededByPrep = sample(c("1","0"),size = 50, replace = TRUE),
Person = sample(c("person","no person"),size = 50, …Run Code Online (Sandbox Code Playgroud) 我在这个堆栈溢出问题中读到了一种巧妙的方法来模拟使用geom_rect.
不幸的是,如果您想在图中放置其他颜色,它不起作用。颜色混合,图例被污染。相反,我更希望颜色只适用于背景,而不是混合在一起。我的另一个问题是:是否有一种适用于极坐标的方法?
有关可重现的示例,请参阅以下代码:
pies <- data_frame(pie = c(rep("hawaiian", 3), rep("pepperoni", 2)),
fraction = c(c(0.3, 0.2, 0.5), c(0.4, 0.6)),
ingredient = c("cheese", "pineapple", "ham",
"peperroni", "cheese"),
deepdish = c(rep(TRUE, 3), rep(FALSE, 2)))
p <- pies %>%
ggplot() +
geom_bar(aes(x = factor(1),
y = fraction,
fill = ingredient),
width = 0.6,
stat = "identity",
position = "fill") +
facet_wrap(~ pie) +
geom_rect(mapping = aes(fill = deepdish),
alpha = 0.1,
xmin = -Inf, xmax = Inf,
ymin=-Inf, ymax=Inf, …Run Code Online (Sandbox Code Playgroud)