У меня возникли некоторые проблемы с geom_bar
ggplot2
«s:Цвет турники в geom_bar ggplot в
Вот мои данные:
set.seed(1)
df <- data.frame(log10.p.value = -10*log10(runif(10,0,1)), y = letters[1:10], col = rep("#E0E0FF",10), stringsAsFactors = F)
#specify color by log10.p.value
df$col[which(df$log10.p.value > 2)] <- "#EBCCD6"
df$col[which(df$log10.p.value > 4)] <- "#E09898"
df$col[which(df$log10.p.value > 6)] <- "#C74747"
df$col[which(df$log10.p.value > 8)] <- "#B20000"
#truncate bars
df$log10.p.value[which(df$log10.p.value > 10)] <- 10
Как вы можете видеть каждый log10.p.value
интервал присваивается другой цвет и так Я не хочу, бруски, чтобы выходить за пределы log10.p.value = 10
я установить любое такое значение 10.
Моя ggplot
команда:
p <- ggplot(df, aes(y=log10.p.value,x=y,fill=as.factor(col)))+
geom_bar(stat="identity",width=0.2)+coord_flip()+scale_y_continuous(limits=c(0,10),labels=c(seq(0,7.5,2.5)," >10"))+
theme(axis.text=element_text(size=10))+scale_fill_manual(values=df$col,guide=FALSE)
И фигура:
Проблемы:
Барные цвета на графике не совпадают
df$col
. Например, полосы a и b цветны # EBCCD6, а не # E09898.Поскольку я вручную указываю, что текст последнего тика по оси x должен быть «> 10», дополнительное пространство создается на участке справа от этого галочки, делая столбцы, которые я усекал в 10, кажется, что они заканчиваются на 10, тогда как мое намерение состояло в том, чтобы они прошли весь путь до правого конца заговора.
для меня это работает, почему вы не думаете, что это не соответствует? возможно, для windows() X11() для linux и quartz() для mac перед построением графика, чтобы у вас было большее окно? для ограничения графика в ggplot вы должны использовать coord_cartesian, как описано здесь http://stackoverflow.com/questions/25685185/limit-ggplot2-axes-without-removing-data-outside-limits-zoom –
Обновлен мой ответ, чтобы включить правильный способ указания цветов через scale_colour_manual. Однако ваш график не воспроизводится, поэтому вам все равно нужно это проверить. – shreyasgm