我有一个这样的共现邻接矩阵: https://dl.dropboxusercontent.com/u/73950/matrix_added_cats.csv
行和列可能包含带有特殊字符的字符串(“(”,“ - ”,“”等)
当我将此数据导入R以使用ggplot2
对其进行可视化时,我这样做:
myData <- read.csv("/matrix_added_cats.csv")
返回:
Name NGO Gov..institutions Industry..farming. Industry..mining. Academia.research Aboriginal.groups
1 NGO 0.00 0.00 0 0.00 0.01 0.00
2 Gov. institutions 0.00 0.01 0 0.04 0.03 0.01
3 Industry (farming) 0.00 0.00 0 0.00 0.00 0.00
4 Industry (mining) 0.00 0.04 0 0.10 0.25 0.07
5 Academia/research 0.01 0.03 0 0.25 0.36 0.10
6 Aboriginal groups 0.00 0.01 0 0.07 0.10 0.02
我们看到包含浮点值的列的名称与以前不一样,正确,字符串。我认为,这导致了ggplot2
可视化中的几个问题:
library(reshape)
dat <- melt(myData)
myPalette <- colorRampPalette(rev(brewer.pal(9, "Spectral")), space="Lab")
zp1 <- ggplot(dat,aes(x = variable, y = Name, fill = value))
zp1 <- zp1 + geom_tile()
zp1 <- zp1 + scale_fill_gradientn(colours = myPalette(100),trans = "reverse")
zp1 <- zp1 + scale_x_discrete(expand = c(0, 0))
zp1 <- zp1 + scale_y_discrete(expand = c(0, 0))
zp1 <- zp1 + coord_equal()
zp1 <- zp1 + theme_bw() +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
print(zp1)
1)为了使共生矩阵有意义,行和列应该处于相同的顺序(以便相同的行/列元素在对角线上相遇),但由于某种原因,Ggplot2以不同的方式对它们进行排序。可能是因为导入后行和列之间的字符串不同吗?
2)特殊字符被“..”取代,看起来非常糟糕。
有没有办法解决这些问题?
答案 0 :(得分:2)
您可以使用check.names = FALSE
中的参数read.csv
来禁止替换列名中的特殊字符。
myData <- read.csv("/matrix_added_cats.csv", check.names = FALSE)
names(myData)
# [1] "Name" "NGO" "Gov. institutions" "Industry (farming)"
# [5] "Industry (mining)" "Academia/research" "Aboriginal groups"