@Ista幫助我產生了以下代碼。從這段代碼我現在需要保存:從小平面ggplot2散點圖中提取原點和斜率值[R]
- Q1:對於8個散點圖中的每一個,在nR = 0處的平均'm'值;
- Q2:僅對於數據的一個子集(假設所有數據從nR = 0到nR = 50),迴歸的斜率(此處顯示爲stat_smooth)的值。正如您在示例中所看到的那樣,計算整個數據集的迴歸;
- 數據應保存爲可用於其他可視化與ggplot2。我不確定這一點是否重要,但我提到它以防萬一。
require(reshape2)
library(ggplot2)
library(RColorBrewer)
md = read.csv(file="http://dl.dropboxusercontent.com/u/73950/rob-136.csv", sep=",", header=TRUE)
dM = melt(md,c("id"))
# split variable out into its components
dM <- cbind(dM,
colsplit(dM$variable,
pattern = "_",
names = c("Nm", "order", "category")))
# no longer need variable, as it is represented by the combination of Nm, order, and category
dM$variable <- NULL
# rearrange putting category in the columns
dM <- dcast(dM, ... ~ category, value.var = "value")
# plot
p = ggplot(dM, aes(x=nR ,y=m))
p = p + scale_y_continuous(name="m")+ scale_x_continuous(name="nR") + xlim(0,136)
p = p + facet_grid(order~Nm)+ ggtitle("Title")
p = p + stat_bin2d(bins=50)
myPalette <- colorRampPalette(rev(brewer.pal(11, "Spectral")))
p = p + scale_fill_gradientn(colours = myPalette(100))
p = p + theme(legend.position="none")
p = p + stat_smooth(method = 'lm')
p
我希望這是非常明顯的,但是請讓我知道,如果我沒了感覺......
乾杯!
幾點意見。爲什麼你一直把所有東西都分配給p並覆蓋它?做一個聲明,其中「圖層」由加號分隔。你是否考慮過在外面進行分析,然後通過特殊圖層('geom_line')引入結果(擬合值)?爲了提取統計結果,請參閱http://stackoverflow.com/questions/9789871/method-to-extract-stat-smooth-line-fit –
我使用「p = p +」在需要時打開和關閉某些行。我覺得它很實用。實際上,我可以在其他地方進行計算,但是如果可能的話,我希望從新安排的dM數據集中一次完成。 – Rodolphe
我可能加快了自己。 James和Brian提出的解決方案不輸出模型參數,只是預測和錯誤。 –