ggtern 禁用 ggplot2 中的一些主题

2023-12-20

尝试将主题切换为theme_bw()不管用,theme_grey()看来优先。有什么想法吗?

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

EDIT:

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

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 
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    

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


ggtern masks EVERYggplot2 的默认主题,这是因为在编写该软件时,创建了约 60 个新主题元素,这些元素的存在是为了使ggtern正确渲染。有关新主题元素的完整列表,请运行以下命令:

library(ggtern)
?theme_elements

话虽如此,正如您所指出的,我知道由于以下原因发生了一些冲突ggtern还修改了一些基本主题元素,并且从版本开始2.1.2 - 2.1.3,我完全重新设计了主题,以便ggtern不再修改任何基本元素——希望这种烦人的行为现在已经永远消失了!

我正在制作关于该软件包的出版物,并且一直在改进许多许多长期的烦恼,因此请下载并安装最新版本(2.1.4) 从我的 (Bitbucket存储库 https://bitbucket.org/nicholasehamilton/ggtern)。令人尴尬的是,即使是最后2.1.3在 CRAN 上的版本中,我在运行两个图时发现了一个非常重要的错误grid.arrange类型情况。这是剪贴蒙版的问题,现已解决in 2.1.4尚未发送到 CRAN,这是我计划立即做的事情。

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

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')

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ggtern 禁用 ggplot2 中的一些主题 的相关文章

  • R 因子变量之间的相关性

    我想知道是否有一种简单的方法来识别与另一个变量 100 相关的特征 因子变量 因此 在示例中 该过程将匹配 颜色 和 车辆 以及 植物 和 高度 color lt c black black blue blue yellow vehicle
  • sapply 函数从命名向量中的值填充数据帧的列,需要很长时间。有更快的方法吗?

    这是我正在做的一个例子 x lt c a 2 b 4 c 2 d 9 df lt data frame names c d c a b x是一个命名向量 其值的顺序与它们在中出现的顺序不同df names 我需要在数据框中形成一个新列 该列
  • 在ggplot2中添加边框或背景以缩放图例guide_colorbar

    我在 ggplot 图中有一个从白色到红色的颜色条 并且白色边框在白色背景上不太明显 有没有办法对图例中的刻度线进行不同的着色或在渐变比例周围添加边框 这是一个最小的例子 df lt data frame x lt rnorm 10 y l
  • 使用 RSQLite 在 R 中加载 SQLite 表

    我有这个函数用来加载 SQLite 表 sqLiteConnect lt function database table library DBI library RSQLite con lt dbConnect SQLite dbname
  • dplyr 标准评估:summarise_ 以及求和变量的变量名称

    我遇到了很多与我的问题类似的问题 但只解决了我问题的一部分 我使用带有标准评估的 dplyr 来容纳变量名称 这对于管道中的 filter 和 group by 效果很好 但是 为了总结 我无法为我正在求和的指标提供变量名称 一个例子就可以
  • rvest - 在 1 个标签中抓取 2 个类

    我是新来的 如何提取标签中具有 2 个类名或仅 1 个类名的元素 这是我的代码和问题 doc lt paste span class a1 b1 text1 span span class b1 text2 span library rve
  • 在 ggplot2 中,如何将堆叠直方图中的小值条形组合在一起?

    示例数据 tmp df lt data frame a rnorm 100 0 1 b rnorm 100 0 5 1 c rnorm 100 0 5 1 d rnorm 100 1 1 e rnorm 100 1 1 gt tidyr g
  • 如何减小 R Plot 中图例的大小,同时仍使其可读?

    我试图用 R 中的两个 y 轴绘制多年来的一些数据 但是 每当我尝试包含图例时 图例就会主导我的绘图 当我使用其他地方建议的解决方案时 例如keyword和 或使用cex论据 在另一篇文章中建议here https stackoverflo
  • R闪亮的html小部件之间的交互

    我正在开发一个 R 闪亮应用程序 它使用多个 html 小部件 特别是网络D3 d3热图 and 和弦诊断 这些小部件单独工作正常 但是 在同一页面中使用它们会留下一个空格处他们应该在哪里 这是显示错误的可重现代码 在 UI 中注释绘图线
  • r : 直方图上的 ECDF

    在 R 中 与ecdf我可以绘制经验累积分布函数 plot ecdf mydata 与hist我可以绘制数据的直方图 hist mydata 如何在同一图中绘制直方图和 ecdf EDIT 我尝试做类似的东西 https mathemati
  • 单击并按住 R 中的按钮闪亮?

    我希望能够通过单击 R 闪亮按钮来更改参数的值 所以我需要按钮 一个用于增加值 一个用于减少值 我想在按住按钮的同时保持值以一定的速度减少 增加 通过释放按钮的点击 动作应该停止 到目前为止我还没有找到这个选项actionButtons在
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • Quarto/Rmarkdown 中的美人鱼图:狭窄且模糊

    我正在尝试生成 pdf 格式的四开文档 稍后会生成 word 格式 我遇到了美人鱼图的问题 请在下面找到一个示例 qmd 文件来说明该问题 所以首先它应该支持 mermaid 标签 但当我这样做时 我无法在 rstudio 中 运行 单元
  • R 中大型稀疏矩阵的聚类分析

    我有一个包含 250000 笔交易 行 和 2183 项 列 的交易数据集 我想将其转换为稀疏矩阵 然后对其进行分层聚类 我尝试了包 sparcl 但它似乎不适用于稀疏矩阵 关于如何解决这个问题有什么建议吗 或者我可以使用任何其他包对稀疏矩
  • R比例置信区间因子

    我正在尝试总结家庭调查的数据 因此我的大部分数据都是分类 因子 数据 我想用对某些问题的回答频率图来总结它 例如 回答某些问题的家庭百分比的条形图 误差线显示置信区间 我发现了这个很棒的教程 我认为它是我祈祷的答案 http www coo
  • 有效地将环境从内部功能转移到全局环境

    我有一个在其中创建环境的函数 我希望将该环境分配给全局环境 目前我通过将环境分配给来做到这一点globalenv 作为最后一步 如下 funfun lt function inc 1 dataEnv lt new env dataEnv d
  • 正则表达式挑选括号之间的一些文本[重复]

    这个问题在这里已经有答案了 可能的重复 提取 R 中所有括号内的信息 正则表达式 https stackoverflow com questions 8613237 extract info inside all parenthesis i
  • ggplot 中跨组的连续线

    我有一个数据时间序列 其中观察了一些数据 模拟了一些数据 我想生成整个数据系列随时间变化的图 其中颜色表示数据源 但是 我只能弄清楚如何使 ggplot 中的 geom line 连接同一组中的点 这是一个例子来说明 Create samp
  • 按绝对值排序

    有谁知道如何按绝对值对 R 中的向量进行排序 所以 2 3 1 gt 1 2 3 etc 如果我在 python 中这样做 我会创建一对每个值及其符号 按绝对值对对列表进行排序 然后重新应用符号 但我对 R 很陌生 所以不知道如何执行此操作
  • 如何在 R 地图库中绘制正确的颜色

    我正在尝试使用 R 地图库为特定国家绘制特定颜色 我可以填写颜色 但它们与各自的国家 地区没有正确关联 我想知道是否有人能知道为什么 我的数据框是 filld 有 3 列 第一列是国家名称 第二列只是一些数字数据 第三列是颜色 countr

随机推荐