需要将文件数据转换为制作饼图的参数

时间:2016-04-23 20:12:49

标签: r pie-chart

目前遇到此错误很困难。我对R来说相对较新,并且仍然在解决问题但是我正在努力做到这一点。

我有一个具有以下格式的文件:

2j2j 902223
6i2i 2311
0i2b 23345
1k2c 4324

我想将其转换为R中的饼图,但是我很难将所有内容都放在需要的地方。我希望第一列是标签,第二列是可视化的数据。我正在使用的方法将每列放入自己的变量中。我非常困惑什么是有效的,scan()函数或read.table函数?

2 个答案:

答案 0 :(得分:0)

假设您的数据存储在名为“temp.dat”的文件中,您可以使用

mydat <- read.table("temp.dat")
#> mydat
#    V1     V2
#1 2j2j 902223
#2 6i2i   2311
#3 0i2b  23345
#4 1k2c   4324
pie(mydat$V2,labels=mydat$V1)

表示一个简单的饼图。由于@Heroka在评论中指出的原因,结果不是很漂亮。

enter image description here

当然,可以尝试通过changing the colors or using a 3D representation来修饰它,但这可能不会显着改善对数据的理解。

答案 1 :(得分:0)

在我构建示例之前,请记住R文档中的饼图不推荐。作者建议使用条形图或点图,主要是因为人们能够比体积更好地判断长度。

首先,您应该拥有,例如带有观察的数据框。在这种情况下,我创建了一个包含400辆车的数据帧df:

df <- data.frame(400)
df <- rep( c("car", "truck", "other", "bike", "suv"), c(60, 120, 20, 50, 150))

由于饼图对于比例特别有用,让我们看一下车辆的比例,而不是在这种情况下报告图表:

paste(prop.table(table(df))*100, "%", sep = "")
[1] "15%"   "5%"    "30%"   "12.5%" "37.5%"

然后你可以绘制饼图,

pie(table(df), labels = paste(round(prop.table(table(e3))*100), "%", sep = ""), 
col = heat.colors(5), main = "Vehicles proportions - n: 400")

enter image description here

最后,您可以添加一个图例:

legend("topright", legend = c("car", "truck", "other", "bike", "suv"), 
fill = heat.colors(5), title = "Categories", cex = 0.5)