我在使用ggplot2 geom_line图时遇到了一个小问题。
当我应用ylim
时,图表变为空白。在默认模式下,ggplot使y轴与所有值混淆,但是我想将参考限制增加到很小的大间隙,即从17.3,17.5,17.7到17-18,图形完好无损。我使用ylim(c(15,30))
,限制增加但图表消失。
我尝试使用scale_y_continuous(breaks=c(15,30))
:
[错误:提供给scale_y_continuous的非连续变量]
和scale_y_discrete(breaks=c(15,30))
[整个y栏消失]
限制之后:
DataFrame:
>head(meltedB)
Mouse Type days weight
1 21-H807 control 2011-09-23 27,0
2 21-H808 control 2011-09-23 27,8
3 21-H809/J125 knockout 2011-09-23 29,1
4 21-H810 control 2011-09-23 27,2
5 21-H811 control 2011-09-23 18,2
6 21-H812 control 2011-09-23 18,8
使用的命令:
ggplot(na.omit(meltedB),aes(factor(days),weight,group=Mouse)) +
geom_line(aes(color=Mouse),size=2) +
facet_grid(Type~.)
**对于那些正在努力绘制NA值的人,在数据框中使用na.omit,它们不会被绘制。
答案 0 :(得分:3)
R提供了两个很大的提示来诊断这个问题。第一个是关于y轴刻度标签的非常丑陋的决定。第二个是显式错误消息,表示您将“非连续”变量传递给scale_y_continuous
。
您的y变量存储为因子(或可能是字符)。在控制台输入str(meltedB)
进行确认。
问题很可能是逗号。您需要在读取数据时返回,并将dec
参数更改为read.table
,默认设置为句点。
答案 1 :(得分:0)
问题是ylim()和(scale_y_discrete())会切断超出这些新边界的数据,因为它会自动将limits()设置为相同的。(/ p>
有两种解决方法