inst/examples/stat-graphics-demo-sp2013.r

library(chromatoplotsgui)
library(chromatoplots)
setwd("/Users/marie/Documents/repos/chromatoplotsgui/data/raw/treatment_0")
raw1 <- loadSample(dir())
prof <- genProfile(raw1)
cor <- removeBaseline(prof, 'median', scanrad = 100)
# peaks <- findPeaks(cor, 'gauss')
# save(peaks, file = 'peaks.rda')
load("/Users/marie/Documents/repos/chromatoplotsgui/data/peaks.rda")
cgfindPeaksPlot(peaks, cor, 201)


## customization
require(cranvas)
require(qtpaint)

qiris <- qdata(iris, color = Species)
myplot <- qscatter(data = qiris, x = Sepal.Length, 
                   y = Sepal.Width )
# myplot

anotherplot <- qscatter(data = qiris, x = Petal.Length, 
                        y = Petal.Width)
anotherplot$view$setGeometry(Qt$QRect(25, 400, 350, 350)) 

threshold <- 5.5

## define new handlers
newpaint <- function(layer, painter){
  ## add a line indicating some threshold
  qdrawLine(painter, x = c(threshold, threshold), 
            y = myplot$meta$limits[,2],
            stroke = "red")
}

newhover <- function(layer, event){
  ## show anotherplot if the mouse exceeds the threshold
  ## hide if below threshold
  if(event$pos()$x() > threshold){
    anotherplot$view$show()
  } else {
    anotherplot$view$hide()
  }
  
}

newkeyPress <- function(layer, event){
  print("ok")
  event$ignore()
}

## create the layer
newlayer <- qlayer(paintFun = newpaint,
                   hoverMoveFun = newhover,
                   keyPressFun = newkeyPress,
                   limits = qrect(myplot$meta$limits))

## add/sync layer to cranvas plot
myplot$layerList[[1]][1,2] <- newlayer
sync_limits(myplot$meta, newlayer)

## push the plot
myplot
mariev/chromatoplotsgui documentation built on May 21, 2019, 11:46 a.m.