我想繪製兩個細胞羣體之間的平均差異,這是非常有意義的(P < 0.001)。然而,使用的規模不適合看到這種差異。這裏是我的代碼:如何使用R改變y尺度,以大步驟開始,然後以短步驟完成,以突出處理之間的差異?
ggplot(sh2_sum, aes(treatment,diameter,fill=treatment)) +
geom_bar(colour='black', width=.7, position=position_dodge(),
stat='identity',size=.2) +
coord_cartesian(ylim=c(0, .4)) +
xlab("") + ylab("Diámetro de la cabeza de la espina (µm)") +
scale_fill_manual(values=c("#009900", "#990000"),name='') +
geom_errorbar(aes(ymin=diameter, ymax=diameter+se),width=.3,
size=.2,position=position_dodge(.7)) +
theme(legend.direction='horizontal',legend.position=c(.5325,-.085),
plot.margin=unit(c(0,1,1,1),'cm'), axis.text.x = element_blank()) +
annotate("text", x=2, y=.355, label="* * *")
這是圖我得到:
我曾嘗試使用scale_y_log10()
但我得到以下錯誤:
Error in seq.default(min, max, by = by) : 'from' must be a finite number In addition: Warning message: Transformation introduced infinite values in continuous y-axis
我會喜歡使用scale_y_sqrt
這種類型的值,從0到3的值很短,然後從3到4的值很大,所以差值是可見的ible 任何想法?
我想你應該考慮放大一下你對'coord_cartesian'感興趣的領域,或者把'geom_bar'完全放在'geom_pointrange'的位置,而不是引入任意的尺度轉換 –
平方根和日誌會放大'y'較小時的差異,'y'較大時的壓縮值。翹曲你的數據,使其看起來相對差異比實際大,你會想要某種指數變換,也許'exp(y)'或'y^2'。或者,不那麼具有欺騙性,按照Mikko的建議 - 線圖或散點圖預計不會從0開始,因此您可以更多地關注差異而不是絕對量級。 – Gregor