我正在使用 ggplot2 (使用 geom_bar 和 coord_polar(theta="y") )绘制40条/环的大极坐标图/饼图,并且发现y轴绘图压缩导致最内圈的多边形分辨率非常差 .
有谁知道提高多边形分辨率的方法?
df <- data.frame(
x = sort(sample(1:40, 400, replace=TRUE)),
y = sample(0:9, 400, replace=TRUE)
)
ggplot(df, aes(x=x, y=y, fill=y)) +
geom_bar(stat='identity', position="fill") +
coord_polar(theta="y") +
scale_fill_continuous(low="blue", high="pink")
这就是我所想要的几何分辨率 . 我通过绘制只有5个级别来管理这个 .
当我增加到40级时,中央多边形会失去光滑度并变得过于锯齿状,如下所示:
2 回答
问题出在
ggplot2:::coord_munch
函数中,该函数的参数为segment_length
,默认值为0.01:https://github.com/hadley/ggplot2/blob/master/R/coord-munch.r
我没有't think there'在任何地方传递参数,这些参数将归结为
coord_munch
的segment_length
参数 . 目前处理它的一种方法是将coord_munch
替换为具有segment_length
的不同默认值的包装函数 .完成后,您可以再次运行该示例:
在命名空间中分配值仅应用于开发目的,因此这不是一个好的长期解决方案 .
除了上面的正确诊断和解决方法之外,Jean-Olivier还通过ggplot2 Google Group建议了另一种解决方法:
感谢大家 .