目前遇到此错误很困难。我对R来说相对较新,并且仍然在解决问题但是我正在努力做到这一点。
我有一个具有以下格式的文件:
2j2j 902223
6i2i 2311
0i2b 23345
1k2c 4324
我想将其转换为R中的饼图,但是我很难将所有内容都放在需要的地方。我希望第一列是标签,第二列是可视化的数据。我正在使用的方法将每列放入自己的变量中。我非常困惑什么是有效的,scan()
函数或read.table
函数?
答案 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在评论中指出的原因,结果不是很漂亮。
当然,可以尝试通过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")
最后,您可以添加一个图例:
legend("topright", legend = c("car", "truck", "other", "bike", "suv"),
fill = heat.colors(5), title = "Categories", cex = 0.5)