1

这可能是非常明显的事情,但我正在努力寻找一个很好的资源来解释如何使用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(这是 MeanFrameMelt)

在此处输入图像描述

编辑2: 这就是我的图表。我不知道发生了什么,我正在data.frame使用以下命令导出:

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

但是当我使用导出的文件运行它时,我得到的正是 agstudy 得到的。这些文件应该是相同的。

在此处输入图像描述

编辑 3:

用 gput 测试了它(谢谢你的建议),现在它创建了正确的图: 新文件

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

4

1 回答 1

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)

在此处输入图像描述

于 2013-01-12T09:52:11.750 回答