【发布时间】:2015-02-20 00:53:49
【问题描述】:
我希望在qplot() 上创建一个包含三个响应变量的密度图。因此,该图将是密度 (y) 与高程 (x) 的关系,三个颜色编码的密度函数显示每个密度如何随着高程(x 轴)的变化而变化。
首先,我将三个响应变量(我的数据集“CAIRNGORM”中的 3 列)子集化为一个名为“ZONES”的小子集:
ZONES<-CAIRNGORM[c("prop_Cal", "prop_Emp", "prop_Jun")]
然后我尝试创建 qplot:
library(ggplot2)
qplot(Elevation, data=CAIRNGORM, geom="density", fill="ZONES", alpha=I(0.5))
它创建了一个图,但没有给我三个迹线,prop_Cal、prop_Emp 和 prop_Jun 各一个,我只有一个迹线,它似乎显示了我的高程数据的密度 - 一条直线!
我非常感谢有人对此提供帮助 - 我如何指示 qplot 构建包含在“ZONES”而不是 x 变量中的三个轨迹?谢谢
编辑:我的数据的缩短版本(尝试将正确的代码格式放入 Stack Overflow):
> head(CAIRNGORM)
position group Elevation
1 Q1 A 680
2 Q2 A 730
3 Q3 A 780
4 Q4 A 830
5 Q5 A 880
6 Q6 A 930
prop_bar prop_Cal prop_Vac prop_Emp prop_Jun prop_Ces prop_Eri ZONES.prop_Cal
1 0.00 1.00 0.0 0 0 0.36 0.4 1.00
2 0.00 1.00 0.0 0 0 0.28 0.0 1.00
3 0.00 0.84 0.6 0 0 0.48 0.0 0.84
4 0.00 1.00 0.0 0 0 0.00 0.0 1.00
5 0.24 0.76 0.0 0 0 0.72 0.0 0.76
6 0.36 0.72 0.0 0 0 0.00 0.0 0.72
ZONES.prop_Emp ZONES.prop_Jun
1 0 0
2 0 0
3 0 0
4 0 0
5 0 0
6 0 0
> head(ZONES)
prop_Cal prop_Emp prop_Jun
1 1.00 0 0
2 1.00 0 0
3 0.84 0 0
4 1.00 0 0
5 0.76 0 0
6 0.72 0 0
【问题讨论】:
-
欢迎来到 SO!如果您能花一些时间提供reproducible example,这将是最有帮助的,尤其是对于涉及绘图的问题。
-
看来您正在处理问题中的多个数据框。请在您的问题中提供一个小样本
-
嗨 - 感谢编辑它 - 我想我已经知道如何编辑成代码格式 - 你在每行之前放了四个空格?无论如何,关于我的数据,我只使用了一个主数据集 CAIRNGORM,并从 CAIRNGORM 中的三个重要变量创建了一个名为 ZONES 的子集,希望它能让 qplot 工作,但可惜它没有。道歉编码和 R 不是我的强项。我确定这很简单,我做错了。
-
看起来你想要一个“响应变量”(意思是
ZONES中的列?)对Elevation的密度图。但是(一维)密度图只是单个变量中值分布的平滑直方图,而不是一个变量相对于另一个变量的值。你能多说一些你期望的情节是什么样的吗?我已经在下面发布了一个可能的答案,但如果这不是你的想法,请告诉我,我会更新我的答案。
标签: r graph ggplot2 factors density-plot