问题标签 [geom-tile]
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 - 不明白为什么这本书的解决方案对于清理航班数据集中的数据是“正确的”
我正在研究 R for Data Science 的问题和网站的解决方案:https ://jrnold.github.io/r4ds-exercise-solutions/exploratory-data-analysis.html 。
我正在研究的问题是:
使用 geom_tile() 和 dplyr 来探索平均航班延误如何随目的地和一年中的月份而变化。是什么让情节难以阅读?你怎么能改进它?
这是他们正在使用的数据,来自 nycflights123 “flights” 数据集:
所以这是他们在我分享的链接中给出的答案:
这产生了这个:
我对此有很多疑问:
- 首先,他/她为什么要分组两次?我看到有一个按月/目的地进行的初始分组,但随后它们又按目的地向下两行分组。
- 接下来,那么取消分组的目的是什么?也许 ungroup 功能有一个我不知道的目的,但听起来违反直觉。
- 最后,这些数据仍然不像本书想要的那样“干净”。当然,它按月显示了一些热图,但是绘制在 y 上的目的地看起来就像字母汤,所以很难得出任何实际的上下文。
我想我现在的两个主要问题是我不明白他们是如何提出这个问题的,我也不明白为什么这是一个可以接受的答案,因为它没有显示太多。
r - Geom_tile 绘制时间轴数据中不存在的不连续性
如果我有以下称为数据的数据框
为了在热图中绘制它,我创建了一个日期向量
我得到一个数据库结构
并将其输入到ggplot热图中
我明白了
考虑到我在数据框中的数据没有任何月度不连续性,为什么 ggplot 会突然创建缺失的数据?如何修复它以使日期之间没有空白,它与日期格式中的小时和秒有关吗?
如果我将日期绘制为字符,我会得到想要的结果,但是,在这种情况下,如何减少日期轴上的刻度数以使其可读?
更新: 根据 stefan 的建议的输出没有解决它,因为每个资产 id 都应该有自己的热图行。现在,它们被绘制在彼此之上。
更新 2
对我来说,这不起作用
手动输入:
解决了这个问题,每个资产 ID 都堆叠在一起。
r - 如何使用 geom_tile 在连续数值数据(x = 时间,y = 变量)后面绘制因子变量(光周期)
我正在处理时间序列数据,在每个时间点,我对多达 16 名受试者中的每一个进行多次测量,跨越数天。我目前已尽可能整齐地组织数据 - 这是一个片段。
每只动物的日期时间都是重复的 - 所以虽然我有 23,844 个总观察值,但每个主题有 1987 个:
我想做的是在 x 轴上绘制时间,在 y 轴上绘制变量,但是将光周期(亮与暗)绘制为数据后面的阴影或亮条,如下所示。
我发现这个 StackExchange 讨论几乎解决了我的问题,但是,因为我对许多主题都有完全相同的日期时间值,最终发生的是每个时间点的光周期值被尽可能多的动物复制,导致阴影更暗而不是透明:
一般来说,我对 ggplot 和 R 很陌生,所以非常感谢有关清理它的建议(以及重新着色瓷砖?!我仍然对 ggplot 的语法感到困惑)。谢谢你,善良的互联网陌生人!
编辑:我被要求提供玩具数据 - 抱歉,这太庞大了,但我想包含足够的数据点来充分演示这个问题,因此需要 2 只动物的重复时间:
r - 将 RColorBrewer 与 scale_fill_gradientn() 一起使用,我不断收到相同的错误
我正在使用以下代码:
错误消息是:
检查您对 scale_fill_gradientn() 的调用。您是否正确指定了参数颜色?
我尝试了各种代码组合,错误消息总是相同的。
这是怎么回事?
r - 在 geom_tile 中按 facet 分割重叠的瓦片
我堆叠了一个数据框,显示value
s perid
跨group
s:
我想创建一个热图,显示跨s(填充)value
的每个(y)的每个(x)的“可用性”:id
group
问题在于fill
重叠:我只能看到 F/V6 仅在group_1
(而不是group_2
)中。但是,对于 ID A 到 E,值 V1 到 V5 在两个组中都可用,因此 的颜色group_2
位于 顶部group_1
,看起来它们仅在 中可用group_2
。
如果我使用facet_wrap()
,可用性会更明显:
但是,在我的实际设置中,热图非常大,因此很难比较哪个值在哪个组中可用。
如果值在两组中都可用,是否可以将每个图块分成两半,如果它只存在于一组中,是否可以保持完整?所以在上面的第一个图中,蓝色瓷砖将被分成两半(同时显示蓝色和红色),红色瓷砖将保持原样。
更新
感谢 stefan 对使用position = "dodge"
. 但是,我注意到我的问题实际上比我上面的 reprex 复杂一点:每个都value
可能出现在多个id
s pergroup
中。使用时position = "dodge"
,ggplot2 然后将每个“列”“划分”为与此中id
出现的每个“列”一样多的value
部分id
:
您可以看到,在“A 列”中,三个图块被放置在彼此上方和相邻的位置,将可用空间分成三部分。我想要实现的是在“A列”中将这三对图块绘制在彼此的顶部,以便它们对齐,使用分配给每个值的“A列”的整个可用空间。