【发布时间】:2016-01-04 18:27:53
【问题描述】:
当我截断 y 轴以仅显示 50 到 90 范围时,我的数据消失了。我是不是把 ylim 放错地方了?
电子表格如下所示:
xval yval_LWTW linenames SNP
1 61.4835166 MT9513 NN
2 61.93341478 RITA GG
3 63.31277751 JUDITH CC
4 63.60466558 CO04W320 GG
5 64.84700514 DECADE NN
library(ggplot2)
library(xlsx)
data <- read.xlsx("RdataForGraphsofBestHits.xlsx", sheetIndex=4)
ggplot(data, aes(x=xval, y=yval_LWTW, fill=SNP,
scale_fill_manual(values=c(GG="blue",CC="red",NN="green")))) +
geom_bar(stat="identity", width=1) +
theme(axis.title.x=element_blank())
这给了我一个很高的图,因为数据从 61 到 81。我想让 y 轴从 50 开始,所以图会更短,所以我在代码中添加了 + ylim(50.0, 90.0) .
library(ggplot2)
library(xlsx)
data <- read.xlsx("RdataForGraphsofBestHits.xlsx", sheetIndex=4)
ggplot(data, aes(x=xval, y=yval_LWTW, fill=SNP,
scale_fill_manual(values=c(GG="blue", CC="red", NN="green")))) +
geom_bar(stat="identity", width=1) +
theme(axis.title.x=element_blank()) +
ylim(50.0, 90.0)
现在我得到了绘图的灰色背景,y 轴很好地限制在 50 到 90 的范围内,但没有绘制数据。只有灰色背景和轴标签和图例。
我想我有使绘图水平的代码。
ggplot(data, aes(x=xval, y=yval_LWTW, fill=SNP,
scale_fill_manual(values=c(GG="blue", CC="red", NN="green")))) +
geom_bar(stat="identity", width=1) +
theme(axis.title.x=element_blank()) +
coord_fixed(ratio=1/2)
所以如果我能解决消失数据的问题,我就可以解决水平问题。
【问题讨论】:
-
尝试过滤数据以匹配您所追求的输出。
-
可能是stackoverflow.com/questions/25685185/…。即使用
coord_cartesian(ylim=c(50,90)) -
谢谢你,皮埃尔·拉福恩。这样一个简单但聪明的解决方案。不确定我是否可以在同一组指令中使用 coord_cartesian 和 coord_fixed(当我指定 1/2 比率时),所以我很可能会从每个数据点中减去 50。谢谢你的想法。
-
嗯,嗯,我减去 50 的想法不是很好,除非我可以将 x 轴标签更改为显示 50 到 90 而不是 0 到 40。不知道你的意思是“过滤”,虽然我试图弄清楚如何使基线为 50。