def open_with_pandas_read_csv(filename):
df = pandas.read_csv(filename, sep=csv_delimiter, header=None)
data = df.values
return data
我得到这个数字
现在我想将一个geom_line 添加到其中一个方面。基本上,我想在主要面板中有一条虚线(Say x = 10,000)。我怎么能这样做?
答案 0 :(得分:15)
我没有你的数据,所以我做了一些:
df <- data.frame(x=rnorm(100),y=rnorm(100),z=rep(letters[1:4],each=25))
ggplot(df,aes(x,y))+geom_point()+theme_bw()+facet_wrap(~z)
要在x = 1
处添加垂直线,我们可以将geom_vline()
与具有相同分面变量的数据框一起使用(在我的情况下为z='b'
,但您的levels='major'
将是ggplot(df,aes(x,y))+geom_point()+theme_bw()+facet_wrap(~z)+
geom_vline(data=data.frame(xint=1,z="b"),aes(xintercept=xint),linetype="dotted")
):
appendTo
答案 1 :(得分:0)
表达此内容的另一种方式可能更容易概括(以及格式化遗漏的内容):
ggplot(df, aes(x,y)) +
geom_point() +
facet_wrap(~ z) +
geom_vline(data = subset(df, z == "b"), aes(xintercept = 1))
关键是:首先进行构面,然后通过对原始数据框进行子集来修饰构面,并在可能的情况下将细节放在新的aes
中。其他类似想法的例子:
ggplot(df, aes(x,y)) +
geom_point() +
facet_wrap(~ z) +
geom_vline(data = subset(df, z == "b"), aes(xintercept = 1)) +
geom_smooth(data = subset(df, z == "c"), aes(x, y), method = lm, se = FALSE) +
geom_text(data = subset(df, z == "d"), aes(x = -2, y=0, label = "Foobar"))