如何在ggplot中显示变量的特殊字符?

时间:2014-10-09 20:45:08

标签: r ggplot2

如何正确显示ggplot图形中列名中使用的特殊字符(“(”,“ë”,句号为逗号等)?

我的csv的专栏行如下所示:

r, á/b, ő/é, w/s (0.3), w/s (0.2), bins

例如,我想要显示的第四个变量(在ggplot图例中)为“w / s(0.3)”。

这是我的代码:

require(reshape2)
library(ggplot2)
library(RColorBrewer)

fileName = paste("/2.csv", sep = "") # test file available here: https://www.dropbox.com/s/f2egxbuwwbba2q9/2.csv?dl=0

mydata = read.csv(fileName,sep=",", header=TRUE)

dataM = melt(mydata,c("bins"))
ggplot(data=dataM, aes(x= bins, y=value, colour=variable, size = variable)) +
geom_line(alpha = .9) +
scale_colour_manual(breaks=c("r","á/b","ő/é","w/s (0.3)","w/s (0.2)"), values=c("green","orange","blue","pink","yellow")) +
#scale_colour_brewer(type = "qual", palette = 7) +
scale_size_manual(breaks=c("r","á/b","ő/é","w/s (0.3)","w/s (0.2)"), values=c(1,0.5,0.5,0.5,0.5)) +
theme_bw() +
theme(plot.background = element_blank(), panel.grid.minor = element_blank(), axis.line = element_blank(),
legend.key = element_blank(), legend.title = element_blank()) +
scale_y_continuous("D", expand=c(0,0)) + 
scale_x_continuous("E", expand=c(0,0)) +
theme(legend.position="bottom")

产生这个:

enter image description here

我们可以看到图例如何错误地显示特殊字符。有什么快速的方法(或不那么快的方法)解决这个问题?

(我对此图片有其他疑问,但我相信最好提出一个新的完整问题,我现在就做了)

1 个答案:

答案 0 :(得分:1)

我认为您需要做的就是在check.names=FALSE电话中加入read.csv();读入数据时,标题中的特殊字符会被转换(有关详细信息,请参阅?make.names)。

我最初对你的问题感到有些困惑,因为我认为问题是带有重音字符,例如ë,而事实上字母是而不是搞砸了 - 它只是非字母数字字符被点替换(同样,以数字开头的字符串将以“X”为前缀)。