- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很喜欢我的点图与 facet_wrap(顶部的 facet 标签)的外观,但我希望能够传递一个空格 = "free_x"以便适本地调整 facet 的大小。 facet_grid 的问题在于,facet 标签移动到绘图的一侧,在这种情况下效果不佳,因为我希望每个面板都分开。
代码如下:
# load data
plotdat <- structure(list(level = c("Lost (N =328)", "Won (N =75)", "Lost (N =10)",
"Won (N =65)", "Challenger (N =318)", "Incumbent (N =85)", "Arab (N =7)",
"Black (N =222)", "East Asian (N =40)", "Latino (N =107)", "Other (N =10)",
"South Asian (N =17)", "Not (N =252)", "Statewide (N =151)"),
mean = c(0.59834264517378, 0.645308353066667, 0.6382179387,
0.646399186046154, 0.595756747751572, 0.649457274258823,
0.682776774142857, 0.557334915725225, 0.6654738063, 0.68260777364486,
0.6061308922, 0.613378378411765, 0.616298597519841, 0.591703758423841
), se = c(0.00597842210656315, 0.0113080614816089, 0.044927778673023,
0.011274258338002, 0.00622316181664198, 0.00900474213888581,
0.0247451786416615, 0.00690804451732034, 0.0116899960061005,
0.00777478853477299, 0.0183766282892234, 0.0166464474073244,
0.00669527297092827, 0.00887170639612841), N = c(328L, 75L,
10L, 65L, 318L, 85L, 7L, 222L, 40L, 107L, 10L, 17L, 252L,
151L), var = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L,
4L, 4L, 4L, 4L, 5L, 5L), .Label = c("Primary Election", "General Election",
"Incumbency", "Race", "Statewide District"), class = "factor")), .Names = c("level",
"mean", "se", "N", "var"), row.names = c(NA, 14L), class = "data.frame")
library('ggplot2')
# with facet_wrap:
ggplot(plotdat, aes(x = mean, xmin = mean-se, xmax = mean+se, y = level)) +
geom_point() + geom_segment( aes(x = mean-se, xend = mean+se,
y = level, yend=level)) +
facet_wrap(~var, ncol=1, scales = "free_y") +
theme_bw() + opts(axis.title.x = theme_text(size = 12, vjust = .25))+
xlab("Mean V (Brightness) for Candidate's Face") + ylab("") +
opts(title = expression("Skin Complexion for 2010 Minority Candidates"))
# with facet_grid:
ggplot(plotdat, aes(x = mean, xmin = mean-se, xmax = mean+se, y = level)) +
geom_point() + geom_segment( aes(x = mean-se, xend = mean+se,
y = level, yend=level)) +
facet_grid(var~., scales = "free_y", space = "free_y") +
theme_bw() + opts(axis.title.x = theme_text(size = 12, vjust = .25))+
xlab("Mean V (Brightness) for Candidate's Face") + ylab("") +
opts(title = expression("Skin Complexion for 2010 Minority Candidates"))
最佳答案
更新 使用 ggplot grob,这很容易做到。见 here或 here
ggplot grob 版本
library(ggplot2)
library(dplyr)
library(grid)
# Get the plot; plotdat data frame is below
p = ggplot(plotdat, aes(x = mean, xmin = mean-se, xmax = mean+se, y = level)) +
geom_point() + geom_segment( aes(x = mean-se, xend = mean+se,
y = level, yend=level)) +
facet_wrap(~var, ncol=1, scales = "free_y") +
theme_bw() + theme(axis.title.x = element_text(size = 12, vjust = .25))+
xlab("Mean V (Brightness) for Candidate's Face") + ylab("") +
ggtitle("Skin Complexion for 2010 Minority Candidates")
# From 'plotdat', get the number of 'levels' for each 'var'.
# That is, the number y-breaks in each panel.
N <- plotdat %>% group_by(var) %>%
summarise(count = n()) %>%
`[[`(2)
# Get the ggplot grob
gt = ggplotGrob(p)
# Get the locations of the panels in the gtable layout.
panels <- gt$layout$t[grepl("panel", gt$layout$name)]
# Replace the default panel heights with relative heights
gt$heights[panels] <- unit(N, "null")
## Draw gt
grid.newpage()
grid.draw(gt)
ggplot2
版本 0.9.3.1
facet_grid
看。
facet_grid
中的条文情节延伸超出 strip 的边界,文本可以使用
theme(strip.text.y = element_text(angle = 0))
旋转.此外,可以使用
str_wrap
将文本环绕成多行。来自
stingr
包。
# load data
plotdat <- structure(list(level = c("Lost (N =328)", "Won (N =75)", "Lost (N =10)",
"Won (N =65)", "Challenger (N =318)", "Incumbent (N =85)", "Arab (N =7)",
"Black (N =222)", "East Asian (N =40)", "Latino (N =107)", "Other (N =10)",
"South Asian (N =17)", "Not (N =252)", "Statewide (N =151)"),
mean = c(0.59834264517378, 0.645308353066667, 0.6382179387,
0.646399186046154, 0.595756747751572, 0.649457274258823,
0.682776774142857, 0.557334915725225, 0.6654738063, 0.68260777364486,
0.6061308922, 0.613378378411765, 0.616298597519841, 0.591703758423841
), se = c(0.00597842210656315, 0.0113080614816089, 0.044927778673023,
0.011274258338002, 0.00622316181664198, 0.00900474213888581,
0.0247451786416615, 0.00690804451732034, 0.0116899960061005,
0.00777478853477299, 0.0183766282892234, 0.0166464474073244,
0.00669527297092827, 0.00887170639612841), N = c(328L, 75L,
10L, 65L, 318L, 85L, 7L, 222L, 40L, 107L, 10L, 17L, 252L,
151L), var = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L,
4L, 4L, 4L, 4L, 5L, 5L), .Label = c("Primary Election", "General Election",
"Incumbency", "Race", "Statewide District"), class = "factor")), .Names = c("level",
"mean", "se", "N", "var"), row.names = c(NA, 14L), class = "data.frame")
library('ggplot2')
library(stringr)
plotdat$var = str_wrap(plotdat$var, width = 10)
# with facet_grid:
ggplot(plotdat, aes(x = mean, xmin = mean-se, xmax = mean+se, y = level)) +
geom_point() + geom_segment( aes(x = mean-se, xend = mean+se,
y = level, yend=level)) +
facet_grid(var~., scales = "free_y", space = "free_y") +
theme_bw() +
ggtitle("Skin Complexion for 2010 Minority Candidates") +
xlab("Mean V (Brightness) for Candidate's Face") + ylab("") +
theme(axis.title.x = element_text(size = 12, vjust = .25),
strip.text.y = element_text(angle = 0))
theme(panel.margin = unit(2, "line")
, 加载后
grid
.
library(grid)
ggplot(plotdat, aes(x = mean, xmin = mean-se, xmax = mean+se, y = level)) +
geom_point() + geom_segment( aes(x = mean-se, xend = mean+se,
y = level, yend=level)) +
facet_grid(var~., scales = "free_y", space = "free_y") +
theme_bw() +
ggtitle("Skin Complexion for 2010 Minority Candidates") +
xlab("Mean V (Brightness) for Candidate's Face") + ylab("") +
theme(axis.title.x = element_text(size = 12, vjust = .25),
strip.text.y = element_text(angle = 0),
panel.margin = unit(2, "lines"))
关于r - 带有 facet_grid 的 ggplot2 dotplot,顶部 ala facet_wrap 带有标签(但带有空格 = "free_x")?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10725856/
我有一个大致如下所示的数据集: names = tibble(NAME_2=c("Location1","Location2","Location3","Location4")) dates = ti
问题是什么? ggplot2 中的每个方面可能不包含“名称”列中的所有因子水平,在这种情况下,我希望该方面忽略这些因子水平以避免图 block 中的间隙。 我尝试了什么 我尝试在 中添加和删除 sca
我想使用分面网格只显示右边距而不是底部边距。 示例代码 library(ggplot2) qplot(mpg, wt, data=mtcars) + facet_grid(cyl ~ vs, marg
我刚刚在 ggplot2 0.9 中遇到了 facet_grid() 的奇怪行为,我想知道是否有人可以向我解释一下...... 采用以下 df 数据框: var <- sample(c("red",
我有以下数据框: Date K Row Col Downward_solar_radiation Solar_radiation_calc 1 2014-01-02 1 1 1
这是 this question 的变体和 this question我还没有找到解决方案。 以mtcars为例,我想要一个类似下面的情节 ggplot(mtcars, aes(x=cyl,y=mpg
我想在一组分面网格箱线图的每一行中添加一条唯一的水平线。 x<-c("species_X","species_X","species_X", "species_Y","species_Y",
我希望有人可以帮助解决我遇到的这个绘图问题。资料可查here . 基本上,我想为我测试的 4 个模型绘制一条线(平均值)及其相关的置信区间(下、上)。我想对 Cat_Auth 变量进行分面,该变量有
我很难为我的 2 个不同的 facet_grids 获得不同的颜色。 这是我的简单示例: df <- data.frame(x = rep(1:20, each=20), y= rep(1:20, 2
我想从多面 ggplot2 图中有选择地删除不必要的方面。我看过这个问题,但不知道怎么做(也许那里的建议现在已经过时了): adding empty graphs to facet_wrap in g
我正在寻找一种使用 facet_grid 进行绘图的方法在 ggplot2只显示几个选定的方面。说我有以下情节: 例如,一直在寻找一种快速的方法来绘制方面 1 和 3。 #data y<-1:12 x
我有几个关于 ggplot2 分面的问题... 假设我有一个查询返回如下所示的数据: (请注意,它是按 Rank asc 排序的,Alarm asc 和两个 Alarms 的 Rank 为 3,因为它
我有一个如下所示的数据框: Direction ID RY Value Part_of_prog North 1 2016 29 0 No
我想同时显示右侧和底部边距,但不是两者的组合。这可能与 facet_grid 吗? library(ggplot2) ggplot(mtcars, aes(x = hp, group = vs)) +
在我下面的情节中,我想知道如何保持一切不变,但只是删除空的情节? library(tidyverse) hsb <- read.csv('https://raw.githubusercontent.c
以下示例创建了一个 ggplot与 4 个面板“A”、“B”、“C”、“D”排成一排。 我想出了如何在一列中绘制这 4 个面板。然而,仍然是个谜是如何排列 4 个面板,使“A”和“B”在第一行,而“C
我想要的是删除右侧的那些标签,即侧面灰色框上的标签。我举个例子: p <- ggplot(mtcars, aes(mpg, wt, col=factor(cyl))) + geom_point() p
我想使用 facet_grid 在彼此之上绘制一些条形图: library(ggplot2) df % summarise(cty = mean(cty), hwy = mean(hwy)) %>
我正在使用 中的“提示”数据集ggplot2 .如果我做 sp = ggplot(tips,aes(x=total_bill, y = tip/total_bill)) + geom_
在 ggplot , 当使用 facet_grid(..., space = "free_y")并且组内的点数很少,分面标题被切断。 例如... library(tidyverse) d pg Ta
我是一名优秀的程序员,十分优秀!