所以我有一些使用read.csv导入R的数据。
d = read.csv("Flux_test_results_for_R.csv", header=TRUE)
rows_to_plot = c(1,2,3,4,5,6,13,14)
d[rows_to_plot,]
看起来效果很好:
> d[rows_to_plot,]
strain selective rate ci.low ci.high
1 4051 rif 1.97539e-09 6.93021e-10 5.63066e-09
2 4052 rif 2.33927e-09 9.92957e-10 5.51099e-09
3 4081 (mutS) rif 1.32915e-07 1.05363e-07 1.67671e-07
4 4086 (mutS) rif 1.80342e-07 1.49870e-07 2.17011e-07
5 4124 (mutL) rif 5.53369e-08 4.03940e-08 7.58077e-08
6 4125 (mutL) rif 1.42575e-07 1.14957e-07 1.76828e-07
13 4760-all rif 6.74928e-08 5.41247e-08 8.41627e-08
14 4761-all rif 2.49119e-08 1.91979e-08 3.23265e-08
所以现在我试图绘制列“rate”,其中“strain”作为标签,ci.low和ci.high作为置信区间的边界。
使用ggplot
,我甚至无法让情节发挥作用。这给出了一个图,其中所有点在y轴上都是1:
g <- ggplot(data=d[rows_to_plot,], aes(x=strain, y=rate))
g + geom_dotplot()
尝试错误栏:
error_limits = aes(ymax = d2$ci.high, ymin = d2$ci.low)
g + geom_errorbar(error_limits)
你可以告诉我,我是一个完整的菜鸟在R中绘制东西,任何帮助都会受到赞赏。
回复更新
发生了两件事。根据我选择的boshek的答案,我似乎是geom_point()
,而不是geom_dotplot()
。
另一个问题是,最初,我过滤了数据只绘制了一些行,但我也没有按行过滤错误限制。所以我转到:
d2 = d[c(1,2,3,4,5,6,13,14),]
error_limits = aes(ymax = d2$ci.high, ymin = d2$ci.low)
g = ggplot(data=d2, ...etc...
答案 0 :(得分:1)
一些一般性评论。远离使用attach
。虽然它有它的用途,但对于初学者来说它可能会非常混乱。习惯d$strain
和d$selective
之类的内容。也就是说,一旦用ggplot()
调用数据框,您可以随后通过名称引用该数据框中的变量。另外,您真的需要用可重复的示例提问。这是了解如何在R中提问的一个非常重要的步骤。
现在为情节。我认为这应该有效:
error_limits = aes(ymax = rate + ci.high, ymin = rate - ci.low)
ggplot(data=d[rows_to_plot,], aes(x=strain, y=rate)) +
geom_point() +
geom_errorbar(error_limits)
但当然这是未经测试的,因为您还没有提供可重复的示例。