如何正确显示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")
产生这个:
我们可以看到图例如何错误地显示特殊字符。有什么快速的方法(或不那么快的方法)解决这个问题?
(我对此图片有其他疑问,但我相信最好提出一个新的完整问题,我现在就做了)
答案 0 :(得分:1)
我认为您需要做的就是在check.names=FALSE
电话中加入read.csv()
;读入数据时,标题中的特殊字符会被转换(有关详细信息,请参阅?make.names
)。
我最初对你的问题感到有些困惑,因为我认为问题是带有重音字符,例如ë,而事实上字母是而不是搞砸了 - 它只是非字母数字字符被点替换(同样,以数字开头的字符串将以“X”为前缀)。