gpt4 book ai didi

r - ggtern 禁用了 ggplot2 的一些主题

转载 作者:行者123 更新时间:2023-12-05 01:35:44 25 4
gpt4 key购买 nike

尝试将主题切换为 theme_bw() 无效,theme_grey() 似乎优先。有什么想法吗?

ggplot(data=mpg,aes(y=year,x=cyl)) + geom_point() + theme_bw()

enter image description here

编辑:

正如评论中所建议的,这在干净的 R session 中运行时有效。但是,当我在加载了 ggtern 的 session 中实现代码时,问题就出现了。

library(ggplot2)
#Warning message:
#package ‘ggplot2’ was built under R version 3.2.5
ggplot(data=mpg,aes(y=year,x=cyl)) + geom_point() + theme_bw()

# sessionInfo()
# R version 3.2.2 (2015-08-14)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 8 x64 (build 9200)
#
# locale:
# [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
# [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
# [5] LC_TIME=English_United States.1252
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] ggplot2_2.1.0
#
# loaded via a namespace (and not attached):
# [1] labeling_0.3 colorspace_1.2-6 scales_0.4.0 plyr_1.8.3 tools_3.2.2 gtable_0.1.2
# [7] Rcpp_0.12.2 grid_3.2.2 munsell_0.4.2

enter image description here

library(ggtern)
#Loading required package: ggplot2

#Attaching package: ‘ggtern’

#The following objects are masked from ‘package:ggplot2’:

#aes, calc_element, ggplot, ggplot_build, ggplot_gtable, ggplotGrob, ggsave, is.ggplot, layer_data,
#layer_grob, layer_scales, theme, theme_bw, theme_classic, theme_dark, theme_get, theme_gray,
#theme_light, theme_linedraw, theme_minimal, theme_set, theme_void

#Warning messages:
#1: package ‘ggtern’ was built under R version 3.2.5
#2: package ‘ggplot2’ was built under R version 3.2.5
ggplot(data=mpg,aes(y=year,x=cyl)) + geom_point() + theme_bw()

# sessionInfo()
# R version 3.2.2 (2015-08-14)
# Platform: x86_64-w64-mingw32/x64 (64-bit)
# Running under: Windows 8 x64 (build 9200)
#
# locale:
# [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252
# [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
# [5] LC_TIME=English_United States.1252
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] ggtern_2.1.1 ggplot2_2.1.0
#
# loaded via a namespace (and not attached):
# [1] Rcpp_0.12.2 lattice_0.20-33 MASS_7.3-45 grid_3.2.2 plyr_1.8.3
# [6] bayesm_3.0-2 gtable_0.1.2 magrittr_1.5 scales_0.4.0 stringi_1.0-1
# [11] compositions_1.40-1 robustbase_0.92-5 latex2exp_0.4.0 boot_1.3-17 labeling_0.3
# [16] proto_0.3-10 tools_3.2.2 stringr_1.0.0 energy_1.6.2 DEoptimR_1.0-4
# [21] munsell_0.4.2 colorspace_1.2-6 tensorA_0.36 gridExtra_2.0.0

enter image description here

看起来 ggtern 掩盖了 ggplot2 的很多主题。

最佳答案

ggtern 掩盖了 ggplot2 的 EVERY 默认主题,这是因为在编写此软件时,已经创建了约 60 个新主题元素,这些元素的存在是为了ggtern 正确呈现。如需新主题元素的完整列表,请运行以下命令:

library(ggtern)
?theme_elements

综上所述,正如您所指出的那样,由于 ggtern 还修改了一些基本主题元素,并且从 2.1.2 版本开始,我意识到了一些冲突 - 2.1.3,我完全重新设计了主题,ggtern 不再修改任何基本元素——希望这种烦人的行为现在已经永远消失了!

我正在制作关于软件包的出版物,并且一直在改进许多许多长期的烦恼,所以请从以下位置下载并安装最新版本 (2.1.4)我的(Bitbucket Repository)。令人尴尬的是,即使是 CRAN 上的最后一个 2.1.3 版本,我在 grid.arrange 类型的情况下运行两个图时发现了一个非常重要的错误。这是剪贴蒙版的问题,在 2.1.4 中已解决,但已发送给 CRAN,我计划立即进行。

无论如何,为了回答您的问题,请升级您的版本,您运行的是 2.1.0 版本,该版本是在 ggplot2 进行巨大修订后不久发布的-- 事实上,就在不久之前,之前的版本被严重破坏,几乎需要重写 ggtern,所以拥有完美的主题是我最不优先考虑的事情。在最近的版本中,由于我有时间细化和识别问题,这种行为应该已经得到解决——通过运行以下两 (2) 个命令(按此顺序,从一个干净的 session 中)来证明,除了标题的明显差异应该会产生相同的结果:

library(ggplot2)
ggplot(data=mpg,aes(y=year,x=cyl)) +
geom_point() + theme_bw() +
labs(title='From ggplot2')

library(ggtern)
ggplot(data=mpg,aes(y=year,x=cyl)) +
geom_point() + theme_bw() +
labs(title='From ggtern')

ggplot2version

ggternversion

如果我只能说,这可能看起来有点离题,但整个问题实际上最初源于一件事,通过几个程度的分离。 ggplot2 的设计没有剪切蒙版,它使用网格视口(viewport)作为本质上的伪剪切蒙版,因为它的所有绘图(极坐标变换除外)都在矩形区域上呈现。位于矩形区域之外的数据映射随后被视口(viewport)丢弃。另一方面,ggtern 需要一个,因为它需要在位于矩形 视口(viewport)内的三角形 形状的多边形区域中呈现 - 就像每个人一样知道,“三角形不适合方孔” 或者俗话说!当轴限制减少时,数据映射可以并且经常位于三角形区域之外,这些需要删除或屏蔽(或者如果用户愿意则显示)。删除不是一种选择,因为它会影响某些图,如多边形图、路径图、密度图或等高线图(我认为点几何可能是唯一不受潜在影响的几何图),这只剩下一个选项——剪贴蒙版的实现.在某些较早的版本中,未实现剪贴蒙版(有利于对数据进行子集化),因此需要修改基本主题元素。如果有的话,也许是最初的“糟糕设计”,已经流传到许多代之后令人沮丧的行为。

关于r - ggtern 禁用了 ggplot2 的一些主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38442603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com