Как один правильно отображать специальные символы («(», «Мобайл», периоды, как запятые и т.д.), используемый в именах столбцов в ggplot графическогоКак отображать специальные символы переменных в ggplot?
столбец строка Моей CSV выглядит следующим образом:
r, á/b, ő/é, w/s (0.3), w/s (0.2), bins
.
И я хотел бы, например, 4-й переменной будет отображаться (в легенде ggplot), как "ш/с (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")
Который производит это:
Мы можем видеть, как легенда неправильно отображаются специальные символы. Любой быстрый способ (или не так-быстрый способ) исправить это?
(У меня есть другие вопросы по поводу этого графика, но я считаю, что это является предпочтительным, чтобы задать новый полный вопрос, который я буду делать прямо сейчас)
это может зависеть от платформы (предположительно MacOS в вашем случае), локали и/или устройства вывода (кварца). Возможно, попробуйте одно из устройств вывода в пакете 'Cairo' и посмотрите, помогает ли это? –
Это действительно OS X, я проверю Каир (еще не слышал об этом). Благодаря! – Rodolphe
На самом деле, я думаю, что все, что вам может понадобиться, будет 'read.csv (file, check.names = FALSE)' –