- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以用 ggplot2 标记 facet_wrap 的特定图?
假设我有一个 3x3
facet_wrap 图,我想用给它一个红色边框,红色线条颜色和红色标题颜色。我该如何以一种方便的方式做到这一点?
最佳答案
如评论中所述,按照您的建议进行操作并不简单。这是一个人可能会去做的事情。在这里,我创建了一个示例数据框,并加载了 ggplot2
和 grid
包。
library(ggplot2)
library(grid)
set.seed(123)
df <- data.frame(f = rep(LETTERS[1:9], 3), x = rnorm(27), y = rnorm(27))
现在,我创建基本情节。红线是最简单的:我们将 colour
美学映射到我们用于分面的变量,并在 scale_colour_manual
中设置颜色:
p <- ggplot(df, aes(x, y, colour = f == "E")) +
geom_line() +
scale_colour_manual(guide = FALSE, values = c("black", "red")) +
facet_wrap("f")
对于其余部分,我们必须手动编辑绘图。我们生成 plot grob 并检查它:
g <- ggplotGrob(p)
g
# TableGrob (21 x 15) "layout": 62 grobs
# z cells name grob
# 1 0 ( 1-21, 1-15) background rect[plot.background..rect.5921]
# 2 1 ( 7- 7, 4- 4) panel-1-1 gTree[panel-1.gTree.5502]
# ...
# 6 1 (12-12, 8- 8) panel-2-2 gTree[panel-5.gTree.5562]
# ...
# 51 2 (11-11, 8- 8) strip-t-2-2 gtable[strip]
# ...
# 62 10 (20-20, 4-12) caption zeroGrob[plot.caption..zeroGrob.5919]
感兴趣的 grobs 是数字 6 和 51,分别对应于中心面板及其面板条。检查 grob 编号 6,我们看到以下内容:
str(g$grobs[[6]])
# List of 5
# $ name : chr "panel-5.gTree.5562"
# ...
# $ children :List of 5
# ..$ grill.gTree.5560 :List of 5
# .. ..$ name : chr "grill.gTree.5560"
# ...
# .. ..$ children :List of 5
# .. .. ..$ panel.background..rect.5551 :List of 10
# ...
# .. .. .. ..$ gp :List of 4
# .. .. .. .. ..$ lwd : num 1.42
# .. .. .. .. ..$ col : logi NA
# .. .. .. .. ..$ fill: chr "grey92"
# .. .. .. .. ..$ lty : num 1
# .. .. .. .. ..- attr(*, "class")= chr "gpar"
# ...
# - attr(*, "class")= chr [1:3] "gTree" "grob" "gDesc"
注意 col
元素。我们将值 red
赋给这个元素:
g$grobs[[6]]$children[[1]]$children[[1]]$gp$col <- "red"
检查 grob 51(结构略有不同),我们做同样的事情:
g$grobs[[51]]$grobs[[1]]$children[[2]]$children[[1]]$gp$col <- "red"
这就是我们需要做的。尽管检查 grob 结构需要一些努力,但进行修改并不需要那么多代码。总而言之,我们需要做的就是:
g <- ggplotGrob(p)
g$grobs[[6]]$children[[1]]$children[[1]]$gp$col <- "red"
g$grobs[[51]]$grobs[[1]]$children[[2]]$children[[1]]$gp$col <- "red"
grid.draw(g)
得到:
关于r - facet_wrap : mark (color border, 行和标题)一个特定的情节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50678679/
我需要一个可以显示每个主题的最高分数计数的查询。假设 3 名学生的科学成绩需要达到 98 分 count marks subject 3 98 Maths 最佳答案 首先找到每个
对于Java中的Concurrent-Mark-Sweep垃圾收集器;我不清楚这两个阶段有什么不同。为什么需要并发标记?初始标记没有找到所有 Activity 对象吗? 最佳答案 使用CMS,即所谓的
我想知道组查询的工作 假设有一张表Student(id,name,marks) 现在如果我想输出除得分最高的学生之外的所有学生,为什么这个查询不起作用? SELECT * FROM Students
我在 VSCode 中使用 markdown 预览器,希望能够突出显示“.md”文件中的某些文本并将其包装在“”标签中,以便在查看 markdown 文件时突出显示以其呈现的格式。 有没有快速简便的方
Pragma 标记在 Localizable.strings 文件中不起作用。如果我在 Localizable.strings 中添加第二个 MARK: (#pragma mark),xcode 会出
我喜欢使用 vim(在 ms windows 上),我想每个人都有一个最喜欢的编辑器,这是我的。 在一台特定的 PC 上,我遇到了与 mark[a-zA-Z] 命令有关的问题。它不适用于字母 a 和
import java.util.*; public class loops { public static void main (String []args) { Scann
我喜欢使用 vim(在 ms windows 上),我想每个人都有一个最喜欢的编辑器,这是我的。 在一台特定的 PC 上,我遇到了与 mark[a-zA-Z] 命令有关的问题。它不适用于字母 a 和
假设我有一个包含函数的列表:。如果我想使用BASCH对它们进行基准测试,我可以这样做:。它运行得很好。然而,我对这种方法有两个小毛病。。看来,Exprs对Mark的论证应该会有所帮助,因为它允许我做一
我正在编写我的 k8s 升级 ansible 剧本,其中我需要做 apt-mark unhold kubeadm .现在,我试图避免使用 ansible command或 shell调用模块apt如果
我的 View 区域中有 2 个并排的列表控件。当我在 list1 中选择一个项目时,会填充 list2。当在 list2 中选择一个项目时,详细信息会显示在它之外的另一个 View 中。 因此,当在
目标是用括号标记字符串中的每个匹配项,并为每个匹配项标记返回相同的字符串 即: Pattern = "\\d+" Text = "e3e3e" wanted result = "e(3)e(3)e"
在我通过启动并运行一个 100% 覆盖率的小型 C++ 测试项目来了解更多关于自动化测试的过程中,我遇到了以下问题——尽管我所有的实际代码行和所有执行分支都是被测试覆盖,lcov 仍然报告两行未经测试
我实现了一个小函数,它解析 SQL INSERT 语句并在光标位于列名上时突出显示列值,反之亦然。 然后我想添加一种在列名和列值之间快速跳转的可能性。我在我的实现中使用了 push-mark,所以我可
我有一个变量searchString与包含字符串。我必须列出 titles我想要的过滤器 searchString 。我尝试使用标签 用于突出显示一段标题,但目前还无法做到。 我尝试实现一个具有 2
我在使用 AppCode IdeaVim 插件时遇到了这个奇怪的问题。安装后一切似乎都正常工作。然而我遇到了一些非常烦人的事情。每当我尝试通过运行 :marks 命令或 :registers 列出标记
这是一个关于正确实现Java的InputStream接口(interface)的问题。 我的实现不支持标记/重置功能。因此,它从 markSupported 方法返回 false。在这种情况下我应该如
我正在构建我的第一个 Tailwindcss基于网站。我想修改 标签使标记的文本看起来更漂亮。 这是我做的: mark { @apply inline-block pr-1 pl-1 py-0
我看到默认的 背景颜色为黄色。在哪里定义的? 我没有在 reference 中找到它,CSS2 system colors中没有对应的颜色. 颜色总是一样的吗?它取决于浏览器或 GUI 设置吗?有什么
我无法想出正确的正则表达式字符串来删除多个 ?人物。我想按顺序更换多个?用一个 ?,但是要转义哪些字符...正在转义我。 示例输入: Is this thing on??? or what??? 期望
我是一名优秀的程序员,十分优秀!