请注意我是R的初学者.我已经使用merge()方法合并了两个数据框和一个公共列.我已经获得了如下数据框:
x y1 y2
1 3 5
2 2 4
1 2 2
3 5 5
...
Run Code Online (Sandbox Code Playgroud)
我想用ggplot绘制这样的数据框架.我创建的内容(使用geom_point的文档是
ggplot(data = dat_c, aes(games, variance.x)) +
geom_point(aes(x = games, y = variance.x), legend= TRUE, xlab="X", ylab="Y", colour=alpha('red', 0.05)) +
geom_point(aes(x = games, y = variance.y), legend = TRUE, colour=alpha('blue', 0.05) )
Run Code Online (Sandbox Code Playgroud)
它有效,NaNs不打扰我,因为我得到警告他们被忽略了,这很好.但是我有两个问题,我不知道如何解决它们:
以下是它的外观:
Ben*_*ker 11
也可以看看:
(这些是搜索的结果[r] ggplot melt
,尽管你也可能已经通过[r] ggplot legend
......)
如果可以,请获取ggplot
该书的副本并从头开始阅读 - 遗憾的是草案的PDF不再在线提供,但这本书值得投资.
你实际上有一些点x
和y
值接近你的情节的极端.很难看到它们,因为它们几乎是透明的(在白色背景上看它们会更容易一些,即尝试添加+theme_bw()
到你的ggplot
通话中).你可以用xlim
和ylim
,如果你想限制情节的范围.(试试summary
你的数据并查看最大值......)
获取轴的最佳方法是遵循将ggplot
您的数据"熔化"成长格式数据集的惯用法,其中一列为该类别(y1
vs y2
),另一列为该值,如下所示:
d <- data.frame(x=c(1,2,1,3),
y1=c(3,2,2,5),
y2=c(5,4,2,5))
library(ggplot2)
library(reshape2) ## for melt()
dm <- melt(d,id.var=1)
ggplot(data=dm,aes(x,value,colour=variable))+
geom_point(alpha=0.2)+
scale_colour_manual(values=c("red","blue"))+
labs(x="games",y="variance")
Run Code Online (Sandbox Code Playgroud)
(对于略微奇怪的格式化而言我很抱歉)我将alpha
值设置得更高,因为否则很难看到图中的点.我认为默认颜色(红色和蓝色)是可以的,但我曾经scale_colour_manual
按照你指定的方式得到它们.
您应该melt
将数据转换为长格式,然后将颜色美学映射到熔化的data.frame中的变量列.像这样的东西:
dat <- data.frame(x = c(1,2,1,3), y1 = c(3,2,2,5), y2 = c(5,4,2,5))
dat.m <- melt(dat, id.vars = "x")
ggplot(dat.m, aes(x, value, colour = variable)) +
geom_point() +
scale_colour_manual(values = c("red", "blue"))
Run Code Online (Sandbox Code Playgroud)
您可以分别使用xlim()
和手动设置限制ylim()
.目前还不清楚你在使用alpha做什么,所以我会把那个留给你.
归档时间: |
|
查看次数: |
31821 次 |
最近记录: |