使用xYplot的非数字x轴

时间:2013-05-22 13:28:39

标签: r hmisc

我正在尝试绘制一个图表,其中x轴具有由数字数据创建的标签表示的非数字数据。让我用我的模拟例子解释一下。我的示例中使用的 data.log 文件可以在here [pastie.org]中找到。

执行我的代码时:

library('Hmisc')
# Please find the "data.log" file in http://pastie.org/7943338
data = read.table("data.log", col.names=c('DAY','PERIOD','UID','NUMBER'), colClasses=c("UID"="character"))
attach(data)
a = summarize(NUMBER, llist(PERIOD, UID), smedian.hilow, na.rm=T)
detach(data)
xYplot(Cbind(NUMBER, Lower, Upper)~numericScale(UID)|factor(PERIOD), data = a)

返回此图:

Graphic with numeric x-axis

我真正想要的是将x值绘制为字符,就好像UID是一个字符串标签,但不是它的数值,因为它们不是顺序的,因此它们不是均匀分布在x轴上。

我已经在努力完成许多工作,我已经看到了有关因素(123)非数字轴({{3})的示例},1),但我没有成功寻找类似的东西。因此,不仅仅是寻找某人来解决我的问题,我还非常欢迎使用示例,文档或技术的链接来帮助我找到解决方案。感谢。

1 个答案:

答案 0 :(得分:2)

这是使用ggplot2geom_pointrange的解决方案:

library(ggplot2)
ggplot(data=a, aes(x     = factor(UID),
                   y     = NUMBER,
                   ymin  = Lower,
                   ymax  = Upper  )) +
  geom_pointrange() +
  facet_grid(PERIOD~.)

enter image description here