我有一個連續變量和,並在x軸的分類。在分類變量中,順序是有意義的,根據其索引來擬合迴歸是有意義的,我的意思是代替c('a', 'b', 'c')
使用索引(order(c('a', 'b', 'c'))
,即c(1, 2, 3)
),並使模型與此相適應。但是,如果一個變量不是數字,ggplot會拒絕匹配geom_smooth(method = lm)
。好吧,那麼我可以告訴它使用的順序:ggplot2:擬合geom_smooth()像分類變量是連續的
geom_smooth(aes(x = order(hgcc), y = rtmean), method = lm)
但隨後它需要整列的索引從數據幀,這是不好用scales = 'free'
刻面,當只有水平的一個子集x
變量的變量出現在一個圖上。在整個數據幀的指標是平均高得多,所以迴歸將遠遠右側繪製:
這裏是一個最小的工作例如:
require(ggplot2)
load(url('http://www.ebi.ac.uk/~denes/54b510889336eb2591d8beff/sample_data.RData'))
ggplot(adata12cc, aes(x = hgcc, y = rtmean, color = cls, size = log10(intensity))) +
geom_point(stat = 'sum', alpha = 0.33) +
geom_smooth(
aes(x = order(hgcc), y = rtmean),
method = 'glm') +
facet_wrap(~ uhgroup, scales = 'free') +
scale_radius(guide = guide_legend(title = 'Intensity (log)')) +
scale_color_discrete(guide = guide_legend(title = 'Class')) +
xlab('Carbon count unsaturation') +
ylab('Mean RT [min]') +
ggtitle('RT vs. carbon count & unsaturation by headgroup') +
theme(axis.title = element_text(size = 24),
axis.text.x = element_text(angle = 90, vjust = 0.5, size = 9, hjust = 1),
axis.text.y = element_text(size = 11),
plot.title = element_text(size = 21),
strip.text = element_text(size = 18),
panel.grid.minor.x = element_blank())
我知道這是不是做事的好方法,但是ggplot可以讓生活變得如此簡單,如果我可以引用這些變量並對它們進行一些操作,而這些變量是通過分面來進行子集化的。
哇,這真的有用!非常感謝! :) – deeenes