问题标签 [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.
r - 扩展 ggplot2 时由 ggproto 设置默认值
我运行了发布在http://ggplot2.tidyverse.org/articles/extending-ggplot2.html#picking-defaults的 R 代码 ,以下是修改后的代码,添加了一些 print() 以显示每个步骤中的变量值,我的问题在代码中被标记为注释:
以下是除绘图外的输出:
提前致谢!
r - ggplot2 - 天平在哪里建造?
我想看看因子值在哪里变成数字值。我试图通过简单地print
在任何地方添加语句来实现这一点......
和
但是当我跑步时
x
和y
是setup_data
函数中的数字stat
。查看包的 Github 存储库,我似乎无法找到这种转换为坐标的实际发生位置?
r - ggplot2的ggproto中“non_missing_aes”的功能是什么?
我正在为 编写扩展ggplot2
,发现有一个新添加的non_missing_aes
参数在扩展的官方文档和官方指南中ggproto
没有解释,谁能告诉我它的功能,以及它们之间的区别?谢谢!ggplot2
ggplot2
required_aes
r - 从头开始创建 geom / stat
我不久前才开始使用 R,目前正在努力加强我的可视化技能。我想要做的是创建带有平均钻石的箱线图作为顶部的一层(参见下面链接中的图片)。我还没有找到任何功能,所以我想我必须自己创建它。
我希望做的是创建一个 geom 或 stat 来允许这样的事情工作:
我不知道从哪里开始构建这个新功能。我知道平均菱形需要哪些值(均值和置信区间),但我不知道如何构建从 获取数据ggplot()
、计算每个组的均值和 CI 并在每个箱线图的顶部。
我已经搜索了有关如何从头开始构建这些类型的函数的详细描述,但是,我还没有找到任何真正从底层开始的东西。如果有人能指出一些有用的指南,我将不胜感激。
谢谢!
r - 扩展 ggplot2:如何构建 geom 和 stat?
我正处于学习如何扩展的早期阶段ggplot2
。我想创建一个自定义geom
和关联的stat
. 我的出发点是小插图。此外,我还受益于this和this。我正在尝试制作一个模板来教自己,并希望能教给其他人。
主要问题:
在我的函数内部calculate_shadows()
,需要的参数params$anchor
是NULL
. 我怎样才能访问它?
下面描述的目标仅用于学习如何创建自定义stat
和geom
函数,这不是真正的目标:正如您从屏幕截图中看到的那样,我确实知道如何利用 的力量ggplot2
来制作图表。
将
/li>geom
读取数据并为提供的变量("x", "y")
绘制(因为需要更好的词)shadows
:默认为水平线,min(x)--max(x)
默认y=0
为垂直线。如果提供了一个选项,这些“锚点”可以改变,例如,如果用户提供,水平线将在截距处绘制,而垂直线将在截距处绘制。用法:min(y)--max(y)
x=0
x = 35, y = 1
y = 1
x = 35
将
/li>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 的分位数方法来计算阴影。用法:
不幸的是,我对扩展的不熟悉使ggplot2
我远远没有达到我的目标。这些图是用geom_segment
. 基于上面引用的教程和讨论并检查现有的代码,例如stat-qq
or 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
r - 从父类调用 setup_data
背景
我正在阅读有关如何将自我调整文本放入条形图中的出色答案:Resizeable text grobs inside bar
在阅读了一些 关于扩展 ggplotggproto
的小插曲之后,我想知道为什么作者必须将例程定义如下:setup_data
因为这本质上是来自以下内容的复制粘贴ggplot2::GeomBar
:
所以我想我可以简单地替换它:
这种方法有效,但我怀疑这是否会导致一些不需要的行为,仅仅是因为GeomFit
isGeomRect
和not GeomBar
的父类。
问题
是否可以(从某种意义上说:没有可能导致问题的条件)用于ggproto_parent
从不是我的ggproto
对象的父类的类中调用函数?为什么ggproto_parent
一开始就有parent
争论?父母不应该由 的第二个参数决定ggproto
吗?
r - 基于类型的自定义“ggplot2”扩展中的子集数据
我正在开发一个看起来有点像的ggplot2
扩展:data.frames
这意味着我们有不同的对象(行)type
。现在我想根据类型对我内部的数据进行子集化。Geoms
Stats
考虑以下示例(使用ggplot2
标准函数):
这绘制了人们所期望的(文本作为文本,行作为段)。
现在我有我自己的geom_text
被调用版本geom_var
:
当我使用自己的版本时,情节看起来像:
TL;博士:
如何更改我的
GeomVar
和/或StatVar
以使NA不再被绘制?或者:我如何
data
根据type
myGeomVar
和StatVar
函数对 my 进行子集化?
(我尝试data <- data[data$type == "text", ]
过基本上每个地方都data
出现在GeomVar
,geom_var
和函数StatVar
中stat_var
..)
r - 使用自己的几何扩展 ggplot:调整默认比例
背景
在阅读了这个关于如何扩展 ggplot和我试图理解的相应小插图的ggplot
漂亮答案之后,如何扩展.
简而言之
我明白,这些部分是如何组合在一起的,但我错过了一个重要信息:如何ggplot
确定轴的默认范围?
代码
考虑以下玩具示例:
问题
如您所见,某些文本未显示。我假设以ggplot
某种方式计算轴的范围,因为它不知道我的textGrob
. 我该如何解决?(期望的结果相当于p + expand_limits(y = 10)
注意。当然,我可以通过要求添加手动比例将问题推给最终用户。但理想情况下,我希望正确设置秤。
r - 自定义 `GeomLink` 函数未找到在 `setup_data` 中计算的列
我有一个data.frame
看起来像:
以及一个函数,它通过查找 type 的链接元素的坐标link_coordinates
来计算所有 type 元素的from_x/from_y
和坐标。链接由和表示:to_x/to_y
link
var
from
to
我可以预先计算这些坐标,然后绘制链接:
现在我想在定制的Geom
名为GeomLink
. 这样做时,我得到一个错误,而不是一个情节:
Error in FUN(X[[i]], ...) : object 'from_x' not found
为什么会这样,我必须如何更改我的GeomLink
和geom_link
函数才能从上面生成图?
这是我的data.frame
:
这是我的GeomLink
和geom_link
功能: