def compute(x0, y0, x1, y1): # Selected square sel = 255 - average(img[y0:y1,x0:x1],2) # Average across x’s ysel = average(sel,1) line = ysel xs = mgrid[0:line.shape[0]] # Pass the data to R rxs = robjects.FloatVector(xs) rys = robjects.FloatVector(line) rdf = robjects.DataFrame({'x': rxs, 'y': rys}) robjects.globalenv['xs'] = rxs robjects.globalenv['df'] = rdf #print(rys.r_repr()) # Fir an R model robjects.r('''fit <- nls(y ~ (off + c1 * exp(-(x-mu1)**2/(2*sg1**2)) + c2 * exp(-(x-mu2)**2/(2*sg2**2))), data=df, start=list(off = 90, c1=120, mu1=30, sg1=10, c2=120, mu2=60, sg2=10), algorithm='port')''') # Get fit results robjects.r('''k <- coef(fit) fitdat <- data.frame(x=xs) fitdat$y <- predict(fit, newdata=fitdat) ## Independent Gaussians fitg1 <- data.frame(x=xs) fitg1$y <- k[['off']] + k[['c1']] * exp(-(xs-k[['mu1']])**2/(2*k[['sg1']]**2)) fitg2 <- data.frame(x=xs) fitg2$y <- k[['off']] + k[['c2']] * exp(-(xs-k[['mu2']])**2/(2*k[['sg2']]**2))''') # Plot R fits fitdat = robjects.globalenv['fitdat'] fitg1 = robjects.globalenv['fitg1'] fitg2 = robjects.globalenv['fitg2'] pp = ggplot2.ggplot(rdf) \ + ggplot2.aes_string(x='x', y='y') \ + ggplot2.geom_point() \ + ggplot2.geom_smooth(data=fitdat, stat="identity", size=1.5) \ + ggplot2.geom_smooth(data=fitg1, stat="identity") \ + ggplot2.geom_smooth(data=fitg2, stat="identity") pp.plot() # Compute the ratio of the gaussian integrals ratio = robjects.r('''k[['c1']]*k[['sg1']]/(k[['c1']]*k[['sg1']]+k[['c2']]*k[['sg2']])''') title('ratio='+str(ratio)) show()
def main(): usage = 'usage: %prog [options] <raw file>' parser = OptionParser(usage) parser.add_option('-d', dest='downstream', default=2000, type='int', help='TSS downstream [Default: %default]') parser.add_option('-o', dest='out_prefix', default='tss', help='Output prefix [Default: %default]') parser.add_option('-u', dest='upstream', default=5000, type='int', help='TSS upstream [Default: %default]') parser.add_option('--ymax', dest='ymax', default=None, type='float', help='Y-coordinate limit [Default: %default]') (options,args) = parser.parse_args() if len(args) != 1: parser.error('Must provide raw file') else: raw_file = args[0] # collect data coords = [] main_cov = [] control_cov = [] for line in open(raw_file): a = line.split() coords.append(int(a[0])) main_cov.append(float(a[1])) control_cov.append(float(a[2])) # data structures tss_i = ro.IntVector(range(-options.upstream,options.downstream+1)) labels = ro.StrVector(['Main']*(options.upstream+options.downstream+1)+['Control']*(options.upstream+options.downstream+1)) cov = ro.FloatVector(main_cov + control_cov) df = ro.DataFrame({'tss_i':tss_i, 'cov':cov, 'label':labels}) # plot ''' gp = ggplot2.ggplot(df) + \ ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \ ggplot2.geom_point() + \ ggplot2.scale_x_continuous('TSS index') + \ ggplot2.scale_colour_discrete('') ''' gp = ggplot2.ggplot(df) + \ ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \ ggplot2.geom_smooth(method='loess', size=1, span=0.2, se=False) + \ ggplot2.scale_x_continuous('TSS Position') + \ ggplot2.scale_colour_discrete('') + \ ggplot2.theme_bw() if options.ymax == None: gp += ggplot2.scale_y_continuous('Coverage') else: gp += ggplot2.scale_y_continuous('Coverage', limits=ro.FloatVector([0,options.ymax])) # save to file grdevices.pdf(file='%s_and.pdf' % options.out_prefix) gp.plot() grdevices.dev_off()
ggplot2.stat_smooth(method = 'lm', fill = 'blue', color = 'red', size = 3) pp.plot() #-- ggplot2smoothblue-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png', width=612, height=612, antialias="subpixel", type="cairo") #-- ggplot2smoothbycyl-begin pp = gp + \ ggplot2.aes_string(x='wt', y='mpg') + \ ggplot2.geom_point() + \ ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') pp.plot() #-- ggplot2smoothbycyl-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png', width=612, height=612, antialias="subpixel", type="cairo") #-- ggplot2smoothbycylwithcolours-begin pp = ggplot2.ggplot(mtcars) + \ ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \ ggplot2.geom_point() + \ ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm')
type="cairo") #-- ggplot2smoothblue-begin pp = (gp + ggplot2.aes_string(x='wt', y='mpg') + ggplot2.geom_point() + ggplot2.stat_smooth(method='lm', fill='blue', color='red', size=3)) pp.plot() #-- ggplot2smoothblue-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png', width=612, height=612, antialias=ANTIALIAS, type="cairo") #-- ggplot2smoothbycyl-begin pp = (gp + ggplot2.aes_string(x='wt', y='mpg') + ggplot2.geom_point() + ggplot2.geom_smooth(ggplot2.aes_string(group='cyl'), method='lm')) pp.plot() #-- ggplot2smoothbycyl-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png', width=612, height=612, antialias=ANTIALIAS, type="cairo") #-- ggplot2smoothbycylwithcolours-begin pp = (ggplot2.ggplot(mtcars) + ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + ggplot2.geom_point() + ggplot2.geom_smooth(ggplot2.aes_string(group='cyl'), method='lm')) pp.plot()
import math, datetime import time import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro from rpy2.robjects.packages import importr from rpy2.interactive import process_revents grdevices = importr('grDevices') process_revents.start() base = importr('base') datasets= importr('datasets') mtcars = datasets.__rdata__.fetch('mtcars')['mtcars'] pp = ggplot2.ggplot(mtcars) + ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + ggplot2.geom_point() + ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') #pp.plot() #process_revents.start() print(pp) process_revents.process_revents() while True: time.sleep(1) process_revents.stop()
pp = gp + \ ggplot2.aes_string(x='wt', y='mpg') + \ ggplot2.geom_point() + \ ggplot2.stat_smooth(method = 'lm', fill = 'blue', color = 'red', size = 3) pp.plot() #-- ggplot2smoothblue-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2smoothbycyl.png', width = 612, height = 612, antialias="subpixel", type="cairo") #-- ggplot2smoothbycyl-begin pp = gp + \ ggplot2.aes_string(x='wt', y='mpg') + \ ggplot2.geom_point() + \ ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') pp.plot() #-- ggplot2smoothbycyl-end grdevices.dev_off() grdevices.png('../../_static/graphics_ggplot2_smoothbycylwithcolours.png', width = 612, height = 612, antialias="subpixel", type="cairo") #-- ggplot2smoothbycylwithcolours-begin pp = ggplot2.ggplot(mtcars) + \ ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \ ggplot2.geom_point() + \ ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') pp.plot() #-- ggplot2smoothbycylwithcolours-end grdevices.dev_off()
def main(): usage = 'usage: %prog [options] <raw file>' parser = OptionParser(usage) parser.add_option('-d', dest='downstream', default=2000, type='int', help='TSS downstream [Default: %default]') parser.add_option('-o', dest='out_prefix', default='tss', help='Output prefix [Default: %default]') parser.add_option('-u', dest='upstream', default=5000, type='int', help='TSS upstream [Default: %default]') parser.add_option('--ymax', dest='ymax', default=None, type='float', help='Y-coordinate limit [Default: %default]') (options, args) = parser.parse_args() if len(args) != 1: parser.error('Must provide raw file') else: raw_file = args[0] # collect data coords = [] main_cov = [] control_cov = [] for line in open(raw_file): a = line.split() coords.append(int(a[0])) main_cov.append(float(a[1])) control_cov.append(float(a[2])) # data structures tss_i = ro.IntVector(range(-options.upstream, options.downstream + 1)) labels = ro.StrVector(['Main'] * (options.upstream + options.downstream + 1) + ['Control'] * (options.upstream + options.downstream + 1)) cov = ro.FloatVector(main_cov + control_cov) df = ro.DataFrame({'tss_i': tss_i, 'cov': cov, 'label': labels}) # plot ''' gp = ggplot2.ggplot(df) + \ ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \ ggplot2.geom_point() + \ ggplot2.scale_x_continuous('TSS index') + \ ggplot2.scale_colour_discrete('') ''' gp = ggplot2.ggplot(df) + \ ggplot2.aes_string(x='tss_i', y='cov', colour='label') + \ ggplot2.geom_smooth(method='loess', size=1, span=0.2, se=False) + \ ggplot2.scale_x_continuous('TSS Position') + \ ggplot2.scale_colour_discrete('') + \ ggplot2.theme_bw() if options.ymax == None: gp += ggplot2.scale_y_continuous('Coverage') else: gp += ggplot2.scale_y_continuous('Coverage', limits=ro.FloatVector( [0, options.ymax])) # save to file grdevices.pdf(file='%s_and.pdf' % options.out_prefix) gp.plot() grdevices.dev_off()
import math, datetime import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro from rpy2.robjects.packages import importr base = importr("base") datasets = importr("datasets") mtcars = datasets.data.fetch("mtcars")["mtcars"] pp = ( ggplot2.ggplot(mtcars) + ggplot2.aes_string(x="wt", y="mpg", col="factor(cyl)") + ggplot2.geom_point() + ggplot2.geom_smooth(ggplot2.aes_string(group="cyl"), method="lm") ) pp.plot()
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2013-09-21 22:43:00 # @Author : Fengce [email protected] ''' python 调用 R语言,并使用 ggplot2 ''' import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro from rpy2.robjects.packages import importr datasets = importr('datasets') mtcars = datasets.__rdata__.fetch('mtcars')['mtcars'] gp = ggplot2.ggplot(mtcars) pp = ggplot2.ggplot(mtcars) + \ ggplot2.aes_string(x='wt', y='mpg', col='factor(cyl)') + \ ggplot2.geom_point() + \ ggplot2.geom_smooth(ggplot2.aes_string(group = 'cyl'), method = 'lm') #pp.plot() ro.r.pdf('ggplot2inPython.pdf') pp.plot() ro.r('dev.off')
import numpy as np import pandas as pd import rpy2.robjects.packages as packages import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro # Importando o dataset do R, o mtcars R = ro.r datasets = packages.importr('datasets') mtcars = packages.data(datasets).fetch('mtcars')['mtcars'] # Gerando o gráfico com ggplot gp = ggplot2.ggplot(mtcars) pyplot = (gp + ggplot2.aes_string(x = 'wt', y = 'mpg') + ggplot2.geom_point(ggplot2.aes_string(colour = 'qsec')) + ggplot2.scale_colour_gradient(low = "yellow", high = "red") + ggplot2.geom_smooth(method = 'auto') + ggplot2.labs(title = "mtcars", x = 'wt', y = 'mpg')) pyplot.plot() print("\nAnálise de Variância") print("--------------------") import rpy2.robjects as robjects r = robjects.r controle = robjects.FloatVector([4.17,5.58,5.18,6.11,4.50,4.61, 5.17,4.53,5.33,5.14]) tratamento = robjects.FloatVector([4.81,4.17,4.41,3.59,5.87,3.83, 6.03,4.89,4.32,4.69])
import math, datetime import time import rpy2.robjects.lib.ggplot2 as ggplot2 import rpy2.robjects as ro from rpy2.robjects.packages import importr from rpy2.interactive import process_revents grdevices = importr('grDevices') process_revents.start() base = importr('base') datasets = importr('datasets') mtcars = datasets.__rdata__.fetch('mtcars')['mtcars'] pp = ggplot2.ggplot(mtcars) + ggplot2.aes_string( x='wt', y='mpg', col='factor(cyl)') + ggplot2.geom_point() + ggplot2.geom_smooth( ggplot2.aes_string(group='cyl'), method='lm') #pp.plot() #process_revents.start() print(pp) process_revents.process_revents() while True: time.sleep(1) process_revents.stop()
# Restructure date data # TODO: make this less hacky start = base.as_Date(min(date_hits.elements())) end = base.as_Date(max(date_hits.elements())) dates = base.seq(start, end, by='day') hits_arr = [0] * len(dates) for date in date_hits: hits_arr[int(base.as_Date(date)[0]) - int(start[0])] = date_hits[date] hits = IntVector(hits_arr) grdevices.png('analytics_out/hits_by_date.png') df = robjects.DataFrame({'date': dates, 'hits': hits}) pp = ggplot.ggplot(df) + \ ggplot.aes_string(x = 'date', y = 'hits') + \ ggplot.geom_point() + \ ggplot.geom_smooth(method = 'loess') pp.plot() grdevices.dev_off() # Restructure hour data hour_arr = [] hits_arr = [] for hour in hour_hits: hour_arr.append(datetime.min + timedelta(hours=int(hour[0:2]))) hits_arr.append(hour_hits[hour]) hour = POSIXct(hour_arr) hits = IntVector(hits_arr) grdevices.png('analytics_out/hits_by_time.png') df = robjects.DataFrame({'hour': POSIXct(hour), 'hits': IntVector(hits)}) pp = ggplot.ggplot(df) + \