2013-08-05 2 views
2

У меня есть следующий пример набора данных:R: Усы не печатаются в ggplot на логарифмической шкале

Sample,Zeitpunkt,Target,NRQ,SD 
"Ctrl","42wk","Ccl12",0.02288218,0.02693519 

Мне нужно использовать логарифмическую шкалу у. MWE выглядит следующим образом:

library("ggplot2") 

Cc <- ggplot(test, aes(x=Sample, y=NRQ, fill=Zeitpunkt, ymin=NRQ-SD, ymax=NRQ+SD)) 
Cc <- Cc + geom_bar(stat="identity", position="dodge") 
Cc <- Cc + scale_y_log10(breaks=c(0.01,0.1,1,10,100), limits=c(0.00001,200)) 
Cc <- Cc + annotation_logticks(base = 10, sides="l") 
Cc <- Cc + guides(fill = guide_legend(keywidth = 0.6, keyheight = 0.6)) 
Cc <- Cc + geom_errorbar(linetype=1, size=0.5, width=0, position=position_dodge(0.9)) 

Который должен вызывать ошибки. Но это не так:

enter image description here

То, что мы нашли до сих пор:

  1. Ошибка возникает, если значение ошибки больше, чем среднее значение (в данном примере 0.02288218 < 0.02693519
  2. .
  3. Это также происходит, если errorbars бьют за пределы участка.

команда dodge включена, потому что мы нужно для фактического графика, содержащего больше данных, поэтому было бы неплохо включить его. Есть ли способ построить диаграммы ошибок в этом виде сюжета?

Большое спасибо!

ответ

0

Я понимаю, что этот вопрос довольно старый, но у меня была аналогичная проблема. Я нашел решение. Когда я добавил + scale_X_log10() в мой ggplot, все мои бары ошибок были сброшены. У меня также было + position=position_dodge(2.5). Либо устраняя эту команду, либо уменьшая ее до position=position_dodge(.025), мои бары ошибок возвращались в соответствующее место. Тем не менее, я не смог воспроизвести эту проблему при масштабировании оси y до log10.

Смежные вопросы