Основная проблема: я хочу отображать данные от 0 до 1.0 в качестве восходящего бара (начиная с 0), но не хочу, чтобы интервалы были равномерно распределены но с интервалом в log.ggplot barplot: как отображать небольшие положительные числа с масштабированной осью y
Я пытаюсь отобразить столбец с надписью «mean» в наборе данных ниже в виде графика в ggplot, но поскольку числа очень малы, я хотел бы показать ось y в логарифмическом масштабе, а не преобразовать лог сами данные. Другими словами, я хочу иметь вертикальные стержни с метками оси Y как 0, 1e-8, 1e-6 1e-4 1e-2 и 1e-0 (то есть от 0 до 1,0, но интервалы масштабируются в масштабе журнала).
Решение, приведенное ниже, не работает, так как перевернутые бары.
> print(df)
type mean sd se snp
V7 outer 1.596946e-07 2.967432e-06 1.009740e-08 A
V8 outer 7.472417e-07 6.598652e-06 2.245349e-08 B
V9 outer 1.352327e-07 2.515771e-06 8.560512e-09 C
V10 outer 2.307726e-07 3.235821e-06 1.101065e-08 D
V11 outer 4.598375e-06 1.653457e-05 5.626284e-08 E
V12 outer 5.963164e-07 5.372226e-06 1.828028e-08 F
V71 middle 2.035414e-07 3.246161e-06 1.104584e-08 A
V81 middle 9.000131e-07 7.261463e-06 2.470886e-08 B
V91 middle 1.647716e-07 2.875840e-06 9.785733e-09 C
V101 middle 3.290817e-07 3.886779e-06 1.322569e-08 D
V111 middle 6.371170e-06 1.986268e-05 6.758752e-08 E
V121 middle 8.312429e-07 6.329386e-06 2.153725e-08 F
ниже код правильно генерирует сгруппированные barplot с погрешностями
ggplot(data=df, aes(x=snp,y=mean,fill=type))+
geom_bar(stat="identity",position=position_dodge(),width=0.5) +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se),width=.3, position=position_dodge(.45))
Однако, я хочу, чтобы сделать журнал оси у масштабируется и поэтому я добавляю в scale_y_log10() следующим образом:
ggplot(data=df, aes(x=snp,y=mean,fill=type))+
geom_bar(stat="identity",position=position_dodge(),width=0.5) + scale_y_log10() +
geom_errorbar(aes(ymin=mean-se, ymax=mean+se),width=.3, position=position_dodge(.45))
Но странно, что бары падают сверху, но я просто хочу, чтобы они поднимались (как обычно) и не знают, что я делаю неправильно.
Спасибо
barplots определены в терминах нуля. У вас очень маленькие цифры. Журнал очень малых чисел отрицательный. Бар переходит от нуля до ваших отрицательных чисел. – Axeman
Я немного смущен, потому что я не лог, преобразующий данные, поэтому цифры все еще положительные. Более того, если вы построите данные, вы увидите, что единицы оси y по-прежнему от 1e-6 (снизу) увеличиваются до 1e-3, но странно полосы «падают» сверху вниз, т. Е. От больших чисел до меньшие числа. Я просто хочу просматривать данные в масштабе журнала, но не преобразовывать сами данные. Я надеюсь, что у меня есть смысл. –
. Вы абсолютно лог, преобразующий данные. 'scale_y_log10()' log преобразует данные перед их графикой. – hrbrmstr