控制 R 中饼图标签的间隙?
Control the gap of pie labels in R?
t = table(iris$Species)
pie(t, labels=rownames(t))
这画的很简单pie
。我希望标签离馅饼更远一点。我检查了 par()
文档,但我想我没有完全理解它,我错过了那个选项。
这个问题是关于 R 自己的 pie()
的,与任何其他外部 R 包无关。
我不认为你真的可以用 pie
函数做到这一点。如果您查看 View(pie)
,您会发现标签是使用 text
函数绘制的。这意味着它们并不是真正的轴标签,par
对它们的影响很小。您可以尝试使用文本函数的参数(即 pos = 2, offset = 1
)来做一些事情,但这将以完全相同的方式影响所有标签并导致警告。在我看来,唯一的方法似乎是在标签之前/之后添加一些空格的愚蠢方法。即:
t = table(iris$Species)
nms = rownames(t)
# spaces needed after the labels
nms[2] = paste0(nms[2], strrep(' ', 7))
# spaces needed before the labels
nms[c(1, 3)] = paste0(strrep(' ', 7), nms[c(1, 3)])
pie(t, labels = nms)
如果你想要更好的解决方案,你可以重写 pie 函数使其更灵活一点或使用不同的包。
t = table(iris$Species)
pie(t, labels=rownames(t))
这画的很简单pie
。我希望标签离馅饼更远一点。我检查了 par()
文档,但我想我没有完全理解它,我错过了那个选项。
这个问题是关于 R 自己的 pie()
的,与任何其他外部 R 包无关。
我不认为你真的可以用 pie
函数做到这一点。如果您查看 View(pie)
,您会发现标签是使用 text
函数绘制的。这意味着它们并不是真正的轴标签,par
对它们的影响很小。您可以尝试使用文本函数的参数(即 pos = 2, offset = 1
)来做一些事情,但这将以完全相同的方式影响所有标签并导致警告。在我看来,唯一的方法似乎是在标签之前/之后添加一些空格的愚蠢方法。即:
t = table(iris$Species)
nms = rownames(t)
# spaces needed after the labels
nms[2] = paste0(nms[2], strrep(' ', 7))
# spaces needed before the labels
nms[c(1, 3)] = paste0(strrep(' ', 7), nms[c(1, 3)])
pie(t, labels = nms)
如果你想要更好的解决方案,你可以重写 pie 函数使其更灵活一点或使用不同的包。