我一直在寻找一段时间来尝试自己解决我的问题,但没有遇到任何似乎与我的数据一起使用的东西。我有这个数据框:
ggplot(mydata2, aes(Analysis_min, runtime))+geom_point(aes(color = factor(Sample_type)))
我想使用ggplot2创建一个绘图,它将使用相同的Analysis_min变量显示运行时和Minutes_to_100,可能是抖动的。
这是仅使用Analysis_min vs runtime:
的情节ggplot(mydata2, aes(Analysis_min, Minutes_to_100))+geom_point(aes(color = factor(Sample_type)))
以下是Analysis_min与Minutes_to_100:
的情节ACTIVITY_DESCRIPTION
我没有看到如何在一个图中组合这两个变量。我想我想要的是一个绘图,其中X轴为Analysis_min,Y轴为运行时,绘图中包含Minutes_to_100的点。
答案 0 :(得分:2)
另一种选择是将您的数据gather
转换为一个新对象,该对象包含可以采用Minutes_to_100
或runtime
的列。然后,您可以colour
使用此变量,shape
使用Sample_type
。
#libraries
library(tidyr)
library(dplyr)
#gather data
df <- mydata2 %>%
gather(var, val, -Sample, -Sample_type, -Sample_type, -Analysis_min, )
> head(df)
Sample Sample_type Analysis_min var val
1 12212016 Female 1D 5 Minutes 1D 5 Minutes_to_100 NA
2 10242016 Female 2D 10 minutes 2D 10 Minutes_to_100 9.116667
3 10242016 Female 2D 100 Refs 10 minutes 2D 10 Minutes_to_100 9.100000
4 10242016 Female 2D 500 Refs 10 minutes 2D 10 Minutes_to_100 9.100000
5 11012016 Female 2D 10 minutes 2D 10 Minutes_to_100 8.866667
6 11012016 Female 2D 100 Refs 10 minutes 2D 10 Minutes_to_100 8.866667
ggplot(data = df,
aes(x = Analysis_min, y = val,
colour = var, shape = Sample_type)) +
geom_point()
如您所知,jitter
可能会有所帮助。
ggplot(data = df,
aes(x = Analysis_min, y = val,
colour = var, shape = Sample_type)) +
geom_point(position = position_jitter())
答案 1 :(得分:1)
您可以将Minutes_to_100的值映射为颜色,然后对sample_type使用形状美学。
ggplot(mydata2,
aes(x = Analysis_min,
y = runtime,
colour = Minutes_to_100,
shape = factor(Sample_type))) +
geom_point()
或者你可以通过Sample_type来表达:
ggplot(mydata2,
aes(x = Analysis_min,
y = runtime,
colour = Minutes_to_100)) +
geom_point() +
facet_wrap(~Sample_type)