6
找不到對此的答案 - 在ggplot2中,是否可以面向列的一個函數,而不是直接列的值?ggplot2:在列的函數上刻面
簡單重複的例子:
的樣本數據:
df=data.frame(dat=c(1,2,5,5,7))
這工作:
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid(dat ~ .)
這不:
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid((dat > 3) ~ .)
一種解決方案是增加一列只是爲了面。這工作:
df$facet=df$dat>3
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid(facet ~ .)
但有沒有辦法做到這一點,而無需添加一個新的列data.frame?
添加新列時出現了什麼問題?我寧願期待添加新列的速度更快,因爲它利用了原生R函數和矢量化。 – Raffael
我對添加新專欄的主要反感僅僅是它看起來不夠雅緻。 ggplot2可以通過一個因素的函數來處理着色 - 刻面怎麼樣?如果你想在一個因素的幾個不同功能上做到這一點,但不會混淆你的數據框與額外的列,或麻煩創建和刪除它們? – nsheff
我明白你的觀點 - 我也曾經在那裏 - 但在一天結束的時候,這只是一個美好的問題,如果你問我,就像我喜歡R一樣,這是一種設計上不雅的語言 - 它的目的是讓工作順利完成,但不夠優雅。 – Raffael