我正在开发一个比例大小的箭头图,并且有一个尺寸,方向和箭头尺寸的工作流程,但箭头有几个问题:1。它们有圆形线连接和2。即使type='closed'
,它们也不会关闭(见右下角)。
require(ggplot2)
require(grid)
d = data.frame(x = 1:10, y = 0, size = 1:10)
ggplot(d, aes(x, y, size = size)) +
geom_segment(aes(xend = x, yend = y + size),
arrow = arrow(length = unit(d$size, "mm"), type='closed')) +
scale_size(range = c(2, 4))
箭头基于grid graphics,但我无法弄清楚如何指定设置。 get.gpar()
收益:
$lineend
[1] "round"
$linejoin
[1] "round"
但gpar(linejoin = 'mitre', lineend = 'butt')
不会改变这一点。有没有办法改变这些设置?提前谢谢。
修改
绘制图片,包括grid.segments箭头添加:
答案 0 :(得分:4)
找到一个解决方案(指向@baptiste的指针)。如果您在github中使用geom_segment source code并进行以下更改,您将得到可爱的尖箭头:
1 require(proto)
2在GeomSegment的第一行(当前第51行)中添加ggplot:::
,如下所示:
GeomSegment <- proto(ggplot:::Geom, {
3在linejoin = 'mitre'
(第23行)中向gpar
添加参数segmentsGrob
:
lwd=size * .pt, lty=linetype, lineend = lineend, linejoin = 'mitre'),
运行这两个功能,你最终会得到: