相关疑难解决方法(0)

如何制作一个很好的R可重复的例子

在与同事讨论性能,教学,发送错误报告或在邮件列表上搜索指导时,以及在Stack Overflow上,通常会询问可重复的示例并始终提供帮助.

您有什么建议创建优秀示例的提示?如何以文本格式粘贴中的数据结构?您还应该包含哪些其他信息?

在另外还有其他招数来使用dput(),dump()structure()?你什么时候应该包括library()require()声明?其中保留字应避免一个,此外c,df,data等?

怎样才能成为一位伟大的重复的例子?

r r-faq

2474
推荐指数
23
解决办法
28万
查看次数

有没有办法在ggplot2中更改图例项之间的间距?

有没有办法在ggplot2中更改图例项之间的间距?我现在有

legend.position ="top" 
Run Code Online (Sandbox Code Playgroud)

它会自动生成水平图例.然而,物品的间距非常接近,我想知道如何将它们分开更远.

r legend ggplot2

108
推荐指数
8
解决办法
7万
查看次数

修改垂直图例中关键字形之间的间距,同时保留关键字形边框

作为这个著名线程的后续。我决定提出一个新问题,因为这更具体针对垂直图例,并且给出的答案仍然没有提供完全令人满意的解决方案。对于多边形键字形,有人建议通过修改底层的draw_key函数来增加实际多边形字形和键边框之间的边距大小。但是,如果我想保留边框(例如黑色),这实际上不起作用。

当使用其他几何对象(例如,geom_line)时,我什至不知道如何增加字形和边框之间的边距 - 简要浏览一下中使用的draw_key函数ggplot2:::GeomLine(它不使用导出的draw_key函数),它我不清楚在哪里修改它。

所以,我的问题是是否有一种方法可以改变关键字形之间的实际空间,从而允许保留边框(例如,颜色=“黑色”),并且不增加字形大小。

library(ggplot2)

p <- ggplot(dplyr::filter(msleep, grepl("^C", order)), 
       aes(sleep_total, sleep_rem, color = order)) +
  geom_line(na.rm = TRUE) +
  theme(legend.key = element_rect(color = "black"))
p
Run Code Online (Sandbox Code Playgroud)

示例图:关键字形接触。

p + theme(legend.key.height = unit(.5, "in"))
Run Code Online (Sandbox Code Playgroud)

如果我删除颜色,看起来字形的间距会更大,但我希望关键字形的大小与上面相同,只是它们之间有间距。

GeomLine 中的底层draw_key

# ggplot2:::GeomLine$draw_key
#> ...
#> segmentsGrob(0.1, 0.5, 0.9, 0.5, gp = gpar(col = alpha(data$colour %||% 
#>                                                          data$fill %||% "black", data$alpha), fill = alpha(params$arrow.fill %||% 
#>                                                                                                              data$colour %||% data$fill %||% "black", data$alpha), 
#>                                            lwd = (data$size %||% 0.5) * …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 ggproto

5
推荐指数
1
解决办法
1269
查看次数

标签 统计

r ×3

ggplot2 ×2

ggproto ×1

legend ×1

r-faq ×1