问题标签 [ggproto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
83 浏览

r - 扩展 ggplot2 时由 ggproto 设置默认值

我运行了发布在http://ggplot2.tidyverse.org/articles/extending-ggplot2.html#picking-defaults的 R 代码 ,以下是修改后的代码,添加了一些 print() 以显示每个步骤中的变量值,我的问题在代码中被标记为注释:

以下是除绘图外的输出:

提前致谢!

0 投票
1 回答
140 浏览

r - ggplot2 - 天平在哪里建造?

我想看看因子值在哪里变成数字值。我试图通过简单地print在任何地方添加语句来实现这一点......

但是当我跑步时

xysetup_data函数中的数字stat。查看包的 Github 存储库,我似乎无法找到这种转换为坐标的实际发生位置?

0 投票
1 回答
159 浏览

r - ggplot2的ggproto中“non_missing_aes”的功能是什么?

我正在为 编写扩展ggplot2,发现有一个新添加的non_missing_aes参数在扩展的官方文档和官方指南中ggproto没有解释,谁能告诉我它的功能,以及它们之间的区别?谢谢!ggplot2ggplot2required_aes

0 投票
0 回答
454 浏览

r - 在不使用极坐标的情况下将极地背景添加到 ggplot

我想使用笛卡尔坐标系绘制图,然后将其覆盖在极坐标图背景上,就像coord_polar. Panel.backgroundfromtheme.R只有element_rect; 理想情况下,我可以使用类似element_polar.

有什么办法可以做到这一点?

简单地使用coord_polar是行不通的,因为我还在绘制各种其他几何图形,这些几何图形以特殊方式映射到coord_polar(例如,geom_ellispisggforce包中)。

可重现的示例代码:

笛卡尔坐标上的 geom_ellipsis 图

极坐标

coord_polar 上的 geom_ellipsis 失真

我想要第三个情节的极地背景,以及第一个情节的未扭曲椭圆。有没有办法做到这一点?

0 投票
1 回答
465 浏览

r - 从头开始创建 geom / stat

我不久前才开始使用 R,目前正在努力加强我的可视化技能。我想要做的是创建带有平均钻石的箱线图作为顶部的一层(参见下面链接中的图片)。我还没有找到任何功能,所以我想我必须自己创建它。

链接:箱线图和平均钻石

我希望做的是创建一个 geom 或 stat 来允许这样的事情工作:

我不知道从哪里开始构建这个新功能。我知道平均菱形需要哪些值(均值和置信区间),但我不知道如何构建从 获取数据ggplot()、计算每个组的均值和 CI 并在每个箱线图的顶部。

我已经搜索了有关如何从头开始构建这些类型的函数的详细描述,但是,我还没有找到任何真正从底层开始的东西。如果有人能指出一些有用的指南,我将不胜感激。

谢谢!

0 投票
1 回答
608 浏览

r - 扩展 ggplot2:如何构建 geom 和 stat?

我正处于学习如何扩展的早期阶段ggplot2。我想创建一个自定义geom和关联的stat. 我的出发点是小插图。此外,我还受益于thisthis。我正在尝试制作一个模板来教自己,并希望能教给其他人。

主要问题:

在我的函数内部calculate_shadows(),需要的参数params$anchorNULL. 我怎样才能访问它?

下面描述的目标仅用于学习如何创建自定义statgeom函数,这不是真正的目标:正如您从屏幕截图中看到的那样,我确实知道如何利用 的力量ggplot2来制作图表。

  1. geom读取数据并为提供的变量("x", "y")绘制(因为需要更好的词)shadows:默认为水平线,min(x)--max(x)默认y=0为垂直线。如果提供了一个选项,这些“锚点”可以改变,例如,如果用户提供,水平线将在截距处绘制,而垂直线将在截距处绘制。用法:min(y)--max(y)x=0x = 35, y = 1y = 1x = 35

    /li>

在此处输入图像描述

  1. stat读取数据,并且对于提供的变量("x", "y")shadows根据 的值进行计算stat。例如,通过传递stat = "identity",将为数据的最小值和最大值计算阴影(由 完成geom_shadows)。但是通过传递stat = "quartile",将计算第一和第三四分位数的阴影。更一般地,可以传递一个类似stats::quantile参数的函数args = list(probs = c(0.10, 0.90), type = 6),以使用第 10 和第 90 个百分位数以及类型 6 的分位数方法来计算阴影。用法:

    /li>

在此处输入图像描述

不幸的是,我对扩展的不熟悉使ggplot2我远远没有达到我的目标。这些图是用geom_segment. 基于上面引用的教程和讨论并检查现有的代码,例如stat-qqor stat-smooth,我已经为这个目标构建了一个基本架构。一定有很多错误,不胜感激。另外,请注意,这些方法中的任何一种都可以:geom_shadows(anchor = c(35, 1))geom_shadows(x = 35, y = 1).

现在这是我的努力。首先,geom-shadows.r定义geom_shadows(). 第二,stat-shadows.r定义stat_shadows(). 代码不能按原样工作。但如果我执行它的内容,它确实会产生所需的统计数据。为清楚起见,我删除了 中的大部分计算stat_shadows(),例如四分位数,以专注于基本要素。布局中有什么明显的错误吗?

几何阴影.r

stat-shadows.r

0 投票
1 回答
104 浏览

r - 从父类调用 setup_data

背景

我正在阅读有关如何将自我调整文本放入条形图中的出色答案:Resizeable text grobs inside bar

在阅读了一些 关于扩展 ggplotggproto的小插曲之后,我想知道为什么作者必须将例程定义如下:setup_data

因为这本质上是来自以下内容的复制粘贴ggplot2::GeomBar

所以我想我可以简单地替换它:

这种方法有效,但我怀疑这是否会导致一些不需要的行为,仅仅是因为GeomFitisGeomRectnot GeomBar的父类。

问题

是否可以(从某种意义上说:没有可能导致问题的条件)用于ggproto_parent从不是我的ggproto对象的父类的类中调用函数?为什么ggproto_parent一开始就有parent争论?父母不应该由 的第二个参数决定ggproto吗?

0 投票
1 回答
80 浏览

r - 基于类型的自定义“ggplot2”扩展中的子集数据

我正在开发一个看起来有点像的ggplot2扩展:data.frames

这意味着我们有不同的对象(行)type。现在我想根据类型对我内部的数据进行子集化。GeomsStats

考虑以下示例(使用ggplot2标准函数):

这绘制了人们所期望的(文本作为文本,作为段)。

现在我有我自己的geom_text被调用版本geom_var

当我使用自己的版本时,情节看起来像:

在此处输入图像描述


TL;博士

  • 如何更改我的GeomVar和/或StatVar以使NA不再被绘制?

  • 或者:我如何data根据typemyGeomVarStatVar函数对 my 进行子集化?

(我尝试data <- data[data$type == "text", ]过基本上每个地方都data出现在GeomVar,geom_var和函数StatVarstat_var..)

0 投票
1 回答
300 浏览

r - 使用自己的几何扩展 ggplot:调整默认比例

背景

在阅读了这个关于如何扩展 ggplot和我试图理解的相应小插图的ggplot漂亮答案之后,如何扩展.

简而言之

我明白,这些部分是如何组合在一起的,但我错过了一个重要信息:如何ggplot确定轴的默认范围?

代码

考虑以下玩具示例:

这产生了这个情节: 带文本的条形图

问题

如您所见,某些文本未显示。我假设以ggplot某种方式计算轴的范围,因为它不知道我的textGrob. 我该如何解决?(期望的结果相当于p + expand_limits(y = 10)

注意。当然,我可以通过要求添加手动比例将问题推给最终用户。但理想情况下,我希望正确设置秤。

0 投票
0 回答
43 浏览

r - 自定义 `GeomLink` 函数未找到在 `setup_data` 中计算的列

我有一个data.frame看起来像:

以及一个函数,它通过查找 type 的链接元素的坐标link_coordinates来计算所有 type 元素的from_x/from_y和坐标。链接由和表示:to_x/to_ylinkvarfromto

我可以预先计算这些坐标,然后绘制链接:

在此处输入图像描述


现在我想在定制的Geom名为GeomLink. 这样做时,我得到一个错误,而不是一个情节:

Error in FUN(X[[i]], ...) : object 'from_x' not found


为什么会这样,我必须如何更改我的GeomLinkgeom_link函数才能从上面生成图?


这是我的data.frame

这是我的GeomLinkgeom_link功能: