gwp的gwpots切割边缘gwp

时间:2013-01-11 16:26:23

标签: r ggplot2 gwidgets

这可能是非常明显的事情,但我很难找到一个很好的资源来解释如何使用gwidgets的功能。在一些帮助下,我有了这个脚本,它创建了一个复选框,用于修改文件名列表,然后使用ggplot创建已检查文件的图表。问题是情节在右边缘被切断,我不知道如何解决这个问题。

编辑:我看到你们中的一些人一直忙着给我评分,但是如果你用我提供的文件运行它,现在应该可以了。我怀疑这个问题来自于cairoDevice以及ggraphics渲染情节的方式。

read.table("foo.csv", header = TRUE, sep = ",", row.names=1)

ggplot(MeanFrameMelt, aes(x=variable, y=value, color=Legend, group=Legend))+ 
  geom_line()+ 
  theme(panel.background = element_rect(fill='NA', colour='black', size = 1), 
        legend.position = "none")+ 
  ylab("Tag Density (mean coverage/bp)")+ 
  xlab("Distance from reference side (bp)")+ 
  scale_x_discrete(breaks=c("V1", "V200", "V400"), labels=c("-10000", "0", "10000"))+ 


GraphFiles <- FileNamesOrig
w <- gwindow("Tag Density Checkboxes", width = 1000)
g <- ggroup(container = w, horizontal = FALSE)
add(g, ggraphics())
lyt <- glayout(container = g, horizontal = FALSE)
print(p)

foo.cvs (this is the MeanFrameMelt)

enter image description here

编辑2: 这就是图表对我来说的样子。我不知道发生了什么,我用这个命令导出data.frame

write.table(MeanFrameMelt, file="test.cvs", sep=",", col.names=TRUE)

但是当我用导出的文件运行它时,我得到了agstudy所得到的。文件应该是相同的。

enter image description here

编辑3:

使用gput测试它(感谢您的建议),现在它创建了正确的情节: New file

使用dget(file="test.txt")

1 个答案:

答案 0 :(得分:1)

我刚刚重组了你的代码,但我无法重现这个问题。你必须在handelr中调用绘图动作以便稍后与用户交互(例如缩放,鼠标事件)。我在这里展示一个例子。 第一次跑步时,你的情节会有一个丑陋的轴。然后,当您单击某个区域时,该图表将刷新,并且您有一个漂亮的轴。

## I define my plot
p <- ggplot(MeanFrameMelt, aes(x=variable, y=value, color=Legend, group=Legend))+ 
  geom_line()+ 
  theme(panel.background = element_rect(fill='NA', colour='black', size = 1), 
        legend.position = "none")+ 
  ylab("Tag Density (mean coverage/bp)")+ 
  xlab("Distance from reference side (bp)")
## init gwidgets
library(gWidgetsRGtk2)
w   <- gwindow("Tag Density Checkboxes", width = 1000)
g   <- ggroup(container = w, horizontal = FALSE)
gg  <- ggraphics(container=g)
lyt <- glayout(container = g, horizontal = FALSE)
## I plot it the first time 
print(p)
## I add a handler
ID <- addHandlerChanged(gg, handler=function(h,...) {
   p <-  p + scale_x_discrete(breaks=c("V1", "V200", "V400"), 
                     labels=c("-1000", "0", "1000"))
   print(p)
})
print(p)

enter image description here