我正在使用 R 从数据库中检索数据并生成一些不错的图表。特别是,当我按如下方式生成饼图时,我可以看到:
library(plotrix)
library(RODBC)
channel<-odbcConnect("MySql")
sqlQuery(channel,"use mydb")
res <-sqlQuery(channel, "SELECT categorystats.name categorystats.totalclick FROM categorystats")
png(filename="pie.png", width=800, height=800)
slices <- res$totalclick
lbls <- res$name
pct <- round(slices/sum(slices)*100)
lbls <- paste(lbls, pct) # add percents to labels
lbls <- paste(lbls,"%",sep="") # add % to labels
pie3D(slices,labels = lbls,explode=0.1,main="Categorie di prodotti più visitate")
dev.off()
odbcClose(channel)
我获得了以下饼图:
不幸的是,图像中没有显示某些标签。
是否存在这样的命令,用于使饼图和相关标签符合图像大小?
答案 0 :(得分:2)
如果没有可重复的例子,我无法提供明确的答案,但这里有几件事要尝试:
1)缩小馅饼的大小,为标签留出更多空间。您可以通过在radius=0.8
的调用中添加pie3D
(或适合您的任何值)来执行此操作。这可能足以解决您的问题。
2)使用边距进行游戏,看看是否可以为标签创造更多空间。您可以通过向mar=c(bottom, left, top, right)
电话添加pie3D
来执行此操作。每个值都是以行数给出的边距大小。
3)您的标签已经有点小了,但您可以通过将labelcex=0.9
(或适用于您的任何缩放系数)添加到pie3D
调用来缩小标签。
4)您还可以使用labelpos
来电中的pie3D
来播放标签位置。在pie3D
的帮助中使用示例来了解其工作原理。
我将完成一些不请自来的建议(“建议是生活中的电梯音乐”我的大学校长在毕业时告诉我们,然后继续给我们一些建议):饼图是一种糟糕的方式显示数据,因为很难辨别不同切片区域的差异。透视饼图仅通过扭曲不同切片的相对区域而使其变差。将3D添加到2D对象使得比较切片区域变得更加困难。如果必须使用饼图,请考虑切换到面朝上(圆形)的二维饼图。