【问题标题】:Labels of plot images in RR中绘图图像的标签
【发布时间】:2013-01-08 20:56:36
【问题描述】:

我正在使用 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)

我得到以下饼图:

很遗憾,有些标签没有显示在图片中。

是否存在这样的命令来制作饼图和适合图像大小的相关标签?

【问题讨论】:

  • 尝试调整标签字体大小的 labelcex 参数,然后 mar() 调整绘图周围的边距,例如三月(3,3,3,3)
  • 你知道每次你策划其中一只小狗都会死去吗?
  • @mdsumner 什么?你喝醉了吗?
  • @mdsumner 是的,当然是!

标签: r label pie-chart labels


【解决方案1】:

如果没有可重现的示例,我无法提供明确的答案,但可以尝试以下几点:

1) 缩小饼图的大小,为标签留出更多空间。您可以通过在对pie3D 的调用中添加radius=0.8(或任何适合您的值)来实现此目的。这可能足以解决您的问题。

2) 使用边距,看看是否可以为标签腾出更多空间。您可以通过将mar=c(bottom, left, top, right) 添加到pie3D 调用来完成此操作。每个值都是以行数给出的边距大小。

3) 您的标签已经有点小了,但您可以通过在 pie3D 调用中添加 labelcex=0.9(或任何适合您的缩放因子)来缩小标签。

4) 您还可以在pie3D 调用中使用labelpos 来处理标签位置。试玩pie3D 帮助中的示例,看看它是如何工作的。

我将提出一些不请自来的建议(“建议是生活的电梯音乐”,我的大学校长在我们毕业时告诉我们,然后继续给我们一堆建议):饼图是一种糟糕的方式显示数据,因为很难辨别不同切片区域的差异。透视饼图只会通过扭曲不同切片的相对区域而使情况变得更糟。将 3D 添加到 2D 对象使得比较切片区域变得更加困难。如果必须使用饼图,请考虑切换到正面(圆形)二维饼图。

【讨论】:

  • 这四点我都试过了。对我有用的是radius=0.7。请注意,它仅在我切换到 pie 函数(即图表的 2d 标准版本)时才有效。谢谢你的时间。 R.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2017-03-22
  • 2020-12-26
  • 2013-05-18
  • 2012-01-21
相关资源
最近更新 更多