R GG在x轴上用字符串打印
我想画一个有几条曲线的图。x轴不是数值,而是字符串 这很好(如中所示):R GG在x轴上用字符串打印,r,plot,ggplot2,dataframe,R,Plot,Ggplot2,Dataframe,我想画一个有几条曲线的图。x轴不是数值,而是字符串 这很好(如中所示): require(ggplot2) df_ok您可以通过添加虚拟组来说服ggplot绘制线 ggplot(df_nok, aes(x,y)) + geom_line(aes(colour=d, group=d)) 另请参见您的问题是x变量是一个因素。因此,更改数据帧并将x设为双精度: df = rbind(data.frame(x=4:1,y=rnorm(4),d="d1"), data.frame
require(ggplot2)
df_ok您可以通过添加虚拟组来说服ggplot绘制线
ggplot(df_nok, aes(x,y)) + geom_line(aes(colour=d, group=d))
另请参见您的问题是x
变量是一个因素。因此,更改数据帧并将x
设为双精度:
df = rbind(data.frame(x=4:1,y=rnorm(4),d="d1"),
data.frame(x=3:1,y=rnorm(3),d="d2"))
正常绘图
g = ggplot(df, aes(x,y)) + geom_line(aes(colour=d))
但明确改变x轴比例:
g + scale_x_continuous(breaks=1:4, labels=c("one", "two", "three", "four"))
要重命名变量,请尝试以下操作:
x1 = factor(df_nok$x,
levels=c("one", "two", "three", "four"),
labels=1:4)
df$x1 = as.numeric(x1)
添加组
美学(我知道有点多余,但比重新调整轴标签简单得多)
df_nok这不能正常工作。它用彩色线段画一条线,但不是两条分开的线。它应该是group=d
,而不是group=1
。太棒了!现在只有顺序错了(“四”,“一”,“三”,“二”)。有什么快速的帮助吗?抱歉我读得太快了,很高兴你得到了一个更好的答案。PS:可以通过将x
设置为一个因子来更改顺序,该因子的级别按您希望的顺序显示。@baptiste:但它与上面Brian Diggs评论的技巧(排序顺序除外)配合得很好!在上面编辑你的答案,并赢得一张赞成票!我希望不必重塑我的数据。但是,如果没有其他人有想法,我会接受这个答案。你知道当我得到df_nok
和x
的通缉令时,我如何轻松地将我的数据重塑为这种形式吗?如果可以的话,我会投你10票。必须始终记住as.is=TRUE
!第二个问题是由于将设置为.is=TRUE
后日期是字符引起的,但这很容易用设置为.date()
解决。你不喜欢R和堆栈溢出吗?好极了迟一年总比不迟一年好,对吧?好吧,不管怎样,这将是像我这样的人谁跌跌撞撞到这一点在未来。
g + scale_x_continuous(breaks=1:4, labels=c("one", "two", "three", "four"))
x1 = factor(df_nok$x,
levels=c("one", "two", "three", "four"),
labels=1:4)
df$x1 = as.numeric(x1)
df_nok <- rbind(data.frame(x=c("four","three","two","one"),y=rnorm(4),d="d1"),data.frame(x=c("three","two","one"),y=rnorm(3),d="d2"))
ggplot(df_nok, aes(x,y, group=d)) + geom_line(aes(colour=d))
df_nok$x <- factor(df_nok$x,
levels=c("one", "two", "three", "four"),
labels=1:4)