问题标签 [ggrepel]
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 - 用ggrepel覆盖水平定位
我正在制作一个类似于坡度图的图表,我想在一侧或两侧放置标签,并留有足够的空白空间以使其适合两侧。在标签很长的情况下,我将它们包裹起来stringr::str_wrap
用于放置换行符。为了防止标签重叠,我使用ggrepel::geom_text_repel
withdirection = "y"
所以 x 位置是稳定的,但 y 位置相互排斥。我还必须hjust = "outward"
在其右端对齐左侧文本,反之亦然。
但是,似乎排斥定位将标签的边界框放置在 中hjust = "outward"
,但该标签中的文本具有,即文本在其边界内居中。hjust = 0.5
直到现在,我从未注意到这一点,但是使用包裹标签,第二行居中尴尬,而我希望看到两行左对齐或右对齐。
这是一个基于数据集构建的示例mpg
。
的其他值也会发生同样的情况hjust
。查看函数的source,我看到一条指向此问题的行:
如果为空,%||%
则分配 0.5 。x$data$hjust
据我所知,但似乎hjust
我设置的并没有被转移到这个位置,而是变成了空值。
我错过了什么吗?谁能在不重新实现整个算法的情况下看到我可以在哪里覆盖它?还是这里有一个错误会导致我的hjust
?
r - 将 ggrepel 长标签移动到绘图线的右侧
我希望将标签完全移动到情节线的右侧。我不希望进一步扩展 x 轴。我只需要创造空间。我该怎么做呢?
r - 多面冲积图中的变量对齐 ggrepel 文本标签
我正在尝试创建一个多面冲积图,其中第一个轴上的地层标签向左和左对齐,右侧的标签向右和右对齐。
总之,我想做的是:
- 对于情节 p1(在不同方面具有不同数量的冲积层)
- 标记每个 x 轴层列
- 让axis1标签向左排斥并左对齐
- 让axis2标签向右排斥并右对齐
这个答案建议标签的不同向量长度,但它不适用于不同的方面。 R中ggalluvial情节的标签和主题
r - 在同一个 geom_text 上使用 ggrepel 和 shadowtext
我有一个图(用 R 制作ggplot2
),它是一堆文本数据的一些奇异值分解的结果,所以我基本上有一个数据集,包含一些评论中使用的约 100 个单词和约 10 个评论类别,带有 2D 坐标对于他们每个人。由于文本数量以及许多重要点之间的紧密程度,我无法让情节看起来清晰易读。
我的数据现在的结构方式,我geom_texts
用不同的格式和诸如此类的东西绘制了 2 个不同的数据,将每个数据传递给一个单独的坐标数据框。这更容易,因为如果〜10个类别与〜100个术语重叠(这是次要的)很好,我希望两者的格式完全不同,但不一定有理由不能将它们放在一起数据框,geom
我想是否有人能找到解决方案。
我想做的是使用该ggrepel
功能,使〜10个类别相互排斥,并使用该shadowtext
功能使它们从彩色单词的背景中脱颖而出,但是由于它们不同geom
,我不确定如何实现这一目标。
带有一些虚假数据的最小示例:
第二个情节的结果,很好地排斥:
最后一张图的结果,在类别标签周围有这些看起来很干净的白色缓冲区:
有没有办法做到这两点?我尝试使用geom_label_repel
无边框,但我认为它看起来不像 shadowtext 解决方案那样干净。
r - 使用ggrepel使用换行符时如何左对齐?
我如何左证明我的标签使用geom_text_repel
?在下面的示例中,我希望单词“very”位于单词“this”的下方。在这里,我使用左对齐设置,即hjust = 0
我可能需要使用annotate
而不是ggrepel
see - Justifying lines of text within individual ggrepel labels来解决这个问题,但ggrepel
更可取
另一种选择可能是使用grid::grid.gedit
,但我不明白如何应用这个框架来ggrepel
查看 - ggplot2: How to left-justify text from multi-line facet labels?
编辑:这个问题中的问题类似于使用 ggrepel 覆盖水平定位,但问题不同之处在于我在这里使用hjust = 0
,而另一个问题使用hjust = "outward"
r - 调整 facet_grid() 中各个方面的 x 和 y 比例以适合 geom_text_repel() 标签?
我需要为facet
facet_grid 中的每个(3 行和 3 列)手动指定 x 轴和 y 轴的限制。
我有 2 个分类因子和一个连续的 y 值(所以我catch_ema_thousands
在y
轴上绘制 ,数据由redlistCategory
(3 个级别)和TaxonGroup
(3 个级别)分面,然后根据VARIABLE
(也是 3 个级别)对点进行着色。
具有非常不均匀的facet_grid
数据点数量和 y 值范围(0 - 1,700,大多数点聚集在 0 附近,一些刻面有 20 个点,而另一些刻面有 0 或 1)。
我必须scale_y_sqrt
转换 y 轴,这会有所帮助,但仍然很难看到繁忙面上的点。
我在 中使用了scales = "free"
andspace="free"
参数facet_grid()
,它调整了 facet 的大小以适应数据点,但不考虑拟合geom_text_repel()
标签。
我必须在 内调整刻面大小ggrepel
吗?
我要标注的~25种物种清单:
我真的很烦人的情节:
我尝试了一个新包facetscales,但出现错误:
然后,
覆盖 facet_grid() 中的“自由”比例有些不对劲,我收到此错误:
样地数据:
r - How to combine repelling labels and shadow or halo text in ggplot2?
There are some nice solutions for either repelling labels in ggplot2 (e.g. ggrepel) or shadow text for labels (e.g. ggshadowtext and this answer). But nothing that allows us to combine these two functions.
I tried this hack that prints the labels many times in slightly different locations, but it doesn't go well with geom_text_repel
It is very slow, and in the locations where the labels are close, this method is not effective:
How can we get shadow text that works with geom_text_repel
? I posted an issue about this to the ggrepel GitHub repo some time ago, but there has been no reply (perhaps it's impossible?)