R-将标签放入饼图中
使用R中的R-将标签放入饼图中,r,pie-chart,R,Pie Chart,使用R中的饼图函数,标签显示在饼图的外部。是否有办法将标签放置在饼图的每个部分内 f=table(LETTERS[c(rep(1,7),rep(2,10),rep(3,5))]) pie(f) 这里展示了如何使用ggplot执行此操作。使用pie函数是否无法执行此操作 编辑:为了回应一些关于饼图使用的评论,我想用它们来阐述我的意图。实际上,我只是使用饼图作为散点图矩阵的一部分来可视化整个回归数据框架。矩阵设置如下: 下部面板 背景颜色较深的样本相关数表示更高的绝对相关性 上面板 逐数值的散
饼图
函数,标签显示在饼图的外部。是否有办法将标签放置在饼图的每个部分内
f=table(LETTERS[c(rep(1,7),rep(2,10),rep(3,5))])
pie(f)
这里展示了如何使用ggplot
执行此操作。使用pie
函数是否无法执行此操作
编辑:为了回应一些关于饼图使用的评论,我想用它们来阐述我的意图。实际上,我只是使用饼图作为散点图矩阵的一部分来可视化整个回归数据框架。矩阵设置如下:
- 下部面板
背景颜色较深的样本相关数表示更高的绝对相关性 - 上面板
- 逐数值的散点图
- 按系数计算的数值箱线图
- 斜板
- 数字图像的正态密度直方图
- 因子饼图
lars
包中的糖尿病数据集
我认为没有一种简单的方法可以做到这一点,因为标签位置是硬编码的-请看本章末尾
body(pie)
if (!is.na(lab) && nzchar(lab)) {
lines(c(1, 1.05) * P$x, c(1, 1.05) * P$y)
text(1.1 * P$x, 1.1 * P$y, labels[i], xpd = TRUE,
adj = ifelse(P$x < 0, 1, 0), ...)
}
}
title(main = main, ...)
invisible(NULL)
}
主体(饼图)
如果(!is.na(实验室)和&nzhar(实验室)){
行(c(1,1.05)*P$x,c(1,1.05)*P$y)
text(1.1*P$x,1.1*P$y,标签[i],xpd=TRUE,
adj=ifelse(P$x<0,1,0),…)
}
}
标题(main=main,…)
不可见(空)
}
但是你可以覆盖程序的这个部分
# create a new pie function to save overwriting original
newpie <- pie
# Tweak the label positions - changed 1.1 to 0.7
# also commented out the lines function - so that the
# small lines next to the labels are not plot
newlbs <- quote(if (!is.na(lab) && nzchar(lab)) {
#lines(c(1, 1.05) * P$x, c(1, 1.05) * P$y)
text(0.7 * P$x, 0.7 * P$y, labels[i], xpd = TRUE,
adj = ifelse(P$x < 0, 1, 0), ...)
})
# add in the new lines of code - trial and error found the right position
body(newpie)[[22]][[4]][[7]] <- newlbs
newpie(f)
#创建一个新的饼图函数以保存覆盖的原始文件
纽皮:很好的解决办法。我打赌改变饼图是很难的,因为统计学中没有人应该使用饼图干杯,Richard,是的,我要引用?饼图帮助-饼图是显示信息的一种非常糟糕的方式Pro提示:您可以在函数上使用tail
,即tail(饼图,9)
相当于您可能必须滚动的body
调用。当然,您仍然需要body@RichardScriven; 谢谢你的指点——那当然更整洁了。对于重写代码,不幸的是,body
中的行并不是单行(body(pie)[22]
)-有没有更好的方法来实现这一点,因为上面的方法看起来非常笨拙?我从来没有见过body(FUN)[[x][[y][[z]]