def plot(complex_lst): ## plot the cluster rmsd dist. plot = biggles.FramedPlot() inset = biggles.FramedPlot() ## plot title plot.title = '/'.join(string.split(absfile(options['o']), '/')[-5:-1]) ## customize plot appearence plot.x1.label = 'cluster' plot.y2.label = 'size' plot.y1.label = 'rmsd' plot.x2.draw_ticks = 0 plot.y2.draw_ticks = 0 inset.frame.draw_ticks = 0 inset.x1.draw_ticklabels = 0 inset.y1.draw_ticklabels = 0 inset.y2.draw_ticklabels = 1 inset.y2.draw_ticks = 1 inset.y2.ticks_style['color'] = 'red' ## get cluter and rmsd lists clst_list = [] rms_list = [] for compl in complex_lst: clst_list += [compl.info['hex_clst']] rms_list += [compl.info['rms']] ## get average, max, min and size of cluster data = [] clst_range = range(1, max(clst_list) + 1) for clst in clst_range: rms = compress(equal(clst_list, clst), rms_list) data += [[average(rms), max(rms), min(rms), len(rms)]] data = transpose(data) ## Inset inset.add(biggles.Curve(clst_range, data[3], color='red')) ## Plot plot.add(biggles.ErrorBarsY(clst_range, data[1], data[2])) plot.add(biggles.Points(clst_range, data[0], type='cross', size=1)) plot.add(biggles.Inset((0.0, 0.0), (1.0, 1.0), inset)) plot.add(biggles.LineY(10, type='dot')) ## add label with info about 'good' solutions (average rmsd < 10A) good = [] for clst in clst_range: if data[0][clst - 1] < 10: good += [clst] plot.add(biggles.PlotLabel(0.5, 0.98, 'Solutions with rmsd < 10A', size=1)) plot.add(biggles.PlotLabel(0.5, 0.95, str(good), size=1)) ## plot and save plot.show() plot.write_eps(string.split(options['o'], '.')[0] + '.eps')
def ramachandran(self): """ Create all the ramachandran plot points. @return: list of biggles.Point objects (all the points of the plot)and a biggles.Inset object (property scale). @rtype: [ biggles.Point ], biggles.Inset """ p = [] ## calculate colors and create a legend if a property is given if self.profileName: palette = CS('plasma', 0, 100) col = palette.color_array(self.prof) legend = Legend(palette.legend()) inset = biggles.Inset((1.1, 0.60), (1.2, .97), legend) else: col = ['black'] * len(self.phi) inset = None ## add data points to plot for i in range(len(self.phi)): ## don't add termini - has missing angles if self.phi[i] and self.psi[i]: if i in self.gly: p += [ biggles.Point(self.psi[i], self.phi[i], type="star", size=1, color=col[i]) ] elif i in self.pro: p += [ biggles.Point(self.psi[i], self.phi[i], type="filled square", size=1, color=col[i]) ] else: p += [ biggles.Point(self.psi[i], self.phi[i], type="filled circle", size=1, color=col[i]) ] return p, inset
def __make_legend(self): """ Create and position the legend. @return: biggles legend object @rtype: biggles.Inset """ l = self.palette.legend() legend = Legend(l) inset = biggles.Inset((1.1, 0.60), (1.2, .97), legend) return inset
def test_example4(): x = numpy.arange(0, 2 * numpy.pi, numpy.pi / 20) s = numpy.sin(x) inset = biggles.FramedPlot() inset.title = "inset" inset.frame.draw_ticks = 0 inset.add(biggles.Curve(x, s, type="dashed")) p = biggles.FramedPlot() p.aspect_ratio = 1. p.frame.tickdir = +1 p.frame.draw_spine = 0 p.add(biggles.SymmetricErrorBarsY(x, s, [0.2] * len(x))) p.add(biggles.Points(x, s, color="red")) p.add(biggles.Inset((.6, .6), (.95, .95), inset)) _write_example(4, p)
biggles.configure('fontsize_min', 0.7) for cg in cgList: ## path and name cgFile = os.path.abspath(cg) cgName = nameFromPath(cgFile) print 'Working on ', cgName ## collect data group = load(cgFile) data, clst_range = clustInfo(group) ## create framedArray plot = plotKey(data, cgName, 'fnrc_4.5') plot.add(biggles.Inset((0.0, 0.0), (1.0, 1.0), plotClusterSize(data))) plotList += [plot] ## gather cluster information dist += clusterDist(data, cgName) info += clusterInfo(data, cgName) ## grouping info t2 = biggles.Table(1, 2) stat1 = plotInfo(info) stat2 = plotInfo(dist) t2[0, 0] = stat2 t2[0, 1] = stat1 ## add rfamedArrays to table i = 0
inset.y2.draw_ticks = 0 dens = Biskit.hist.density(e_val[i], 25) inset.add( biggles.Curve(dens[:, 1], dens[:, 0], type='solid', width=2, color=spectrum[i])) p_histogram += [inset] ## population lines pop = [.2, .4, .6, .8] popName = ['p2', 'p4', 'p6', 'p8'] for k in range(0, len(pop)): popName[k] = biggles.LineY(populationDist(e_val[i], pop[k]), type='dotted') p_popLines += [popName] ## plot and save for i in range(len(p_energy)): p[i, 0].add(p_energy[i]) p[i, 0].add(p_label[i]) p[i, 0].add(p_average[i]) p[i, 0].add(p_reference[i]) p[i, 0].add(biggles.Inset((1.0, 0.00), (0.8, 1.0), p_histogram[i])) for j in range(shape(p_popLines)[1]): p[i, 0].add(p_popLines[i][j]) p.show() p.write_eps(options['o'] + '/foldX_plot.eps', width="18cm", height="29cm")
#!/usr/bin/env python import sys sys.path.insert(1,'..') import biggles import math, numpy x = numpy.arange( 0, 2*math.pi, math.pi/20 ) s = numpy.sin(x) c = numpy.cos(x) inset = biggles.FramedPlot() inset.title = "inset" inset.frame.draw_ticks = 0 inset.add( biggles.Curve(x, s, type="dashed") ) p = biggles.FramedPlot() p.aspect_ratio = 1. p.frame.tickdir = +1 p.frame.draw_spine = 0 p.add( biggles.SymmetricErrorBarsY(x, s, [0.2]*len(x)) ) p.add( biggles.Points(x, s, color="red") ) p.add( biggles.Inset((.6,.6), (.95,.95), inset) ) #p.write_img( 400, 400, "example4.png" ) #p.write_eps( "example4.eps" ) p.show()