我试图在图表上使用facet_wrap()共享一个共同的图例.这些图包含4个密度估计值,每个密度估计值使用geom_density()构建.这是数据外观的最小示例.针对每个估计器级别估计一个密度,并且针对xp的每个值绘制不同的图.
> esti
estimator value xp
1 OLS Oracle 0.35757317 N= 10 T= 100
2 OLS Oracle 0.50540655 N= 10 T= 100
3 OLS Full 0.02276872 N= 10 T= 100
4 OLS Full 0.53616020 N= 10 T= 100
5 Lasso 0.00000000 N= 10 T= 100
6 Lasso 0.30448578 N= 10 T= 100
7 Adaptive Lasso 0.00000000 N= 10 T= 100
8 Adaptive Lasso 0.49949267 N= 10 T= 100
9 OLS Oracle 0.48392914 N= 10 T= 500
10 OLS Oracle 0.53685915 N= 10 T= 500
11 OLS Full 0.50565482 N= 10 T= 500
12 OLS Full 0.61407003 N= 10 T= 500
13 Lasso 0.38342782 N= 10 T= 500
14 Lasso 0.52012928 N= 10 T= 500
15 Adaptive Lasso 0.47951875 N= 10 T= 500
16 Adaptive Lasso 0.53222172 N= 10 T= 500
Run Code Online (Sandbox Code Playgroud)
我可以用四个密度构建一个图:
library('ggplot2')
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()
Run Code Online (Sandbox Code Playgroud)
或者两个面板,每个面板有一个密度:
ggplot(data=esti,aes(x=value)) + geom_density() +facet_wrap(~xp,scales='free_y')
Run Code Online (Sandbox Code Playgroud)
但是这两个一起不起作用并导致错误:
> ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density() +facet_wrap(~xp,scales='free_y')
Error in UseMethod("scale_dimension") :
no applicable method for 'scale_dimension' applied to an object of class "NULL"
Run Code Online (Sandbox Code Playgroud)
我已经尝试过不同的音阶值,或完全省略它,没有运气.我试图跟踪哪个对象被应用于'scale_dimension',也没有运气.任何人都可以开导我吗?
由于我无法发表评论来支持 joran 的建议(即,我没有足够的声誉),这里有一个答案:
通过从
ggplot(data=esti,aes(x=value,colour=estimator)) + geom_density()
Run Code Online (Sandbox Code Playgroud)
到
ggplot(data=esti,aes(x=value,colour=estimator))
+ geom_density() +facet_wrap(~xp,scales='free_y')
Run Code Online (Sandbox Code Playgroud)
每个估计器/xp 对只剩下 2 个数据点。看起来,这不足以计算密度。例如,以下代码行有效(注意data=rbind(esti,esti))
ggplot(data=rbind(esti,esti),aes(x=value,colour=estimator))
+ geom_density() +facet_wrap(~xp,scales='free_y')
Run Code Online (Sandbox Code Playgroud)
另外,如果你替换geom_density为geom_bar,它会起作用
ggplot(data=esti,aes(x=value,colour=estimator))
+ geom_bar() +facet_wrap(~xp,scales='free_y')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1872 次 |
| 最近记录: |