本文整理汇总了Python中reportlab.graphics.charts.textlabels.Label.dy方法的典型用法代码示例。如果您正苦于以下问题:Python Label.dy方法的具体用法?Python Label.dy怎么用?Python Label.dy使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类reportlab.graphics.charts.textlabels.Label
的用法示例。
在下文中一共展示了Label.dy方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _drawLabels
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def _drawLabels(self, Title, xAxis, yAxis):
self.graphCenterX = self.width/2
self.graphCenterY = self.height/2
Label_Xaxis = Label()
Label_Xaxis.fontSize = 7
Label_Xaxis.angle = 0
Label_Xaxis.dx = self.graphCenterX - 50
Label_Xaxis.dy = 0
Label_Xaxis.boxAnchor = 's'
Label_Xaxis.setText(xAxis)
self.drawing.add(Label_Xaxis)
Label_Yaxis = Label()
Label_Yaxis.fontSize = 7
Label_Yaxis.angle = 90
Label_Yaxis.boxAnchor = 'n'
Label_Yaxis.dx = -5
Label_Yaxis.dy = self.graphCenterY
Label_Yaxis.setText(yAxis)
self.drawing.add(Label_Yaxis)
Label_Graph = Label()
Label_Graph.fontSize = 10
Label_Graph.angle = 0
Label_Graph.boxAnchor = 'n'
Label_Graph.dx = self.graphCenterX - 50
Label_Graph.dy = self.height
Label_Graph.setText(Title)
self.drawing.add(Label_Graph)
示例2: addChromosomes
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def addChromosomes(drawing, chrNames, chrSizes, xmap, ymap, w=0.1*DPI, fillColor=colors.skyblue, strokeColor=colors.skyblue):
for i,chrom in enumerate(chrNames):
x = xmap(i+1)
y = ymap(chrSizes[chrom])
h = ymap(1)-ymap(chrSizes[chrom])
chromosome = Rect(x,y,w,h, strokeColor=strokeColor, fillColor=fillColor)
drawing.add(chromosome)
topCap = Wedge(x+0.5*w, y+h, 0.5*w, 0, 180, strokeColor=strokeColor, fillColor=fillColor)
bottomCap = Wedge(x+0.5*w, y, 0.5*w, 180, 0, strokeColor=strokeColor, fillColor=fillColor)
drawing.add(topCap)
drawing.add(bottomCap)
label = Label()
label.setOrigin(xmap(i+1)+w/2, ymap(0))
label.boxAnchor = 's'
label.textAnchor = 'middle'
label.dx = 0
label.dy = DPI/10
label.setText(chrom)
label.fontSize = 36
label.fontName = 'Helvetica'
drawing.add(label)
chrLength = Label()
chrLength.setOrigin(xmap(i+1)+w/2, ymap(chrSizes[chrom]))
chrLength.boxAnchor = 'n'
chrLength.textAnchor = 'middle'
chrLength.dx = 0
chrLength.dy = -DPI/10
chrLength.setText('%iMb' % int(chrSizes[chrom]/1e6))
chrLength.fontSize = 24
chrLength.fontName = 'Helvetica'
drawing.add(chrLength)
示例3: draw_travels
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def draw_travels(self):
for p in self.world.packets:
if self.detailed:
txt = p.command()
else:
txt = "(%d) %s" % (p.number, p.description)
last_action = (0,0)
for ts in p.trip:
action = self.packet_actions[ts.action]
if ts.actor not in self.verticals:
self.verticals[ts.actor] = self.verticals[ts.actor.node]
x2,y2 = self.verticals[ts.actor], -ts.time*self.yzoom
if action.sprite:
self.sequence_diagram.add(shapes.Circle(x2, y2,
action.size, fillColor=action.color, strokeWidth=1 ))
if action.travel:
if action.travel_desc:
# self.sequence_diagram.add(shapes.String((last_action[0] + x)/2,(last_action[1]+y)/2, label, fill=colors.black, textAnchor = 'middle'))
x1, y1 = last_action[0], last_action[1]
l = Label()
l.setText(txt)
l.angle = atan2((y2-y1)/2, (x2-x1))*360.0/pi
l.dy = 10
l.setOrigin((x1 + x2)/2,(y1+y2)/2)
self.sequence_diagram.add(l)
#anchor = Paragraph('<a name="diagram%d"/>' %p.number, styles['Normal'])
self.sequence_diagram.add(shapes.Line(last_action[0],last_action[1],x2,y2, strokeColor=colors.black, strokeWidth=1))
self.max_y = min(y2, self.max_y, last_action[1])
last_action = (x2,y2)
示例4: _makeProtoLabel
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def _makeProtoLabel(self):
"Return a label prototype for further modification."
protoLabel = Label()
protoLabel.dx = 0
protoLabel.dy = 0
protoLabel.boxStrokeWidth = 0.1
protoLabel.boxStrokeColor = colors.black
protoLabel.boxFillColor = colors.yellow
# protoLabel.text = 'Hello World!' # Does not work as expected.
return protoLabel
示例5: addLabel
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def addLabel(drawing, x, y, text, fontName='Helvetica', fontSize=11, dy=0,
angle=0, boxAnchor='sw', textAnchor='start'):
"""Add a label to the drawing.
This interface here is inconsistent in that it requires pixel coords. FIX
This just sets convenient defaults for Label."""
label = Label()
label.setText(text)
label.setOrigin(x, y)
label.fontName = fontName
label.fontSize = fontSize
label.boxAnchor = boxAnchor
label.textAnchor = textAnchor
label.dy = dy
label.angle = angle
drawing.add(label)
示例6: addPointyCompoundFeature
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def addPointyCompoundFeature(drawing, xmap, y, gene,
strokeColor=None, fillColor=colors.blue, intronColor=colors.blue,
glyph=PointyBlock, height=12, utrHeight=6, rise=8,
labeldy=10, fontSize=10, textAnchor='middle', boxAnchor='s'):
"""Adds a pointy compound feature to the drawing. This is typically
several exons joined by zig-zag lines with an arrow showing strand."""
if gene.strand=='+':
x1,x2 = xmap(gene.start), xmap(gene.end)
else:
x2,x1 = xmap(gene.start), xmap(gene.end)
y = y+height/2
y1 = y
line = Line(x1,y1,x2,y1,strokeColor=intronColor)
drawing.add(line)
for exon in gene:
if exon.strand=='+':
x1,x2 = xmap(exon.start), xmap(exon.end)
else:
x2,x1 = xmap(exon.start), xmap(exon.end)
g = glyph()
g.x = x1
g.y = y
if exon.kind.lower()=='utr':
g.height = utrHeight
else:
g.height = height
g.length = x2-x1
g.fillColor = fillColor
if strokeColor:
g.strokeColor = strokeColor
else:
g.strokeColor = fillColor
g.fontSize = fontSize
drawing.add(g)
label = Label()
label.setText(gene.name)
x = 0.5*(gene.start+gene.end)
label.setOrigin(x,y)
label.dy = labeldy
label.textAnchor = textAnchor
label.boxAnchor = boxAnchor
drawing.add(label)
示例7: addAxis
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def addAxis(drawing, xmap, y, strokeWidth=1, minorStrokeWidth=0.5,
tickDir='down', autoTicks=False, nTicks=20, tickLen=5, fontSize=10, nMinorTicks=80,
minorTickLen=2, angle=0, dx=0, dy=-2, textAnchor='middle', boxAnchor=None,
scale=1.0, format='%i'):
"""Add a horizontal axis to the drawing.
To do: Round tick positions
"""
line = Line(xmap.x0, y, xmap.x1, y, strokeWidth=strokeWidth)
drawing.add(line)
if not boxAnchor:
if tickDir=='down':
boxAnchor = 'n'
else:
boxAnchor = 's'
signum = {'up': -1, 'down': 1}[tickDir]
if nTicks>0:
ticks = tick_generator(xmap.start, xmap.end, n=nTicks, convert=int)
for p in ticks:
x = xmap(p)
line = Line(x, y, x, y-signum*tickLen, strokeWidth=strokeWidth)
drawing.add(line)
s = Label()
s.setOrigin(x, y-signum*tickLen)
s.setText(format % (p/scale))
s.dx = dx
s.dy = signum*dy
s.fontName = 'Helvetica'
s.fontSize = fontSize
s.textAnchor = textAnchor
s.boxAnchor = boxAnchor
s.angle = angle
drawing.add(s)
minorticks = tick_generator(xmap.start, xmap.end, n=nMinorTicks, convert=int)
for p in minorticks:
x = xmap(p)
line = Line(x, y, x, y-signum*minorTickLen, strokeWidth=minorStrokeWidth)
drawing.add(line)
示例8: Drawing
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
from reportlab.graphics import shapes
from reportlab.graphics.charts.textlabels import Label
d = Drawing(200, 100)
# mark the origin of the label
d.add(Circle(100,90, 5, fillColor=colors.green))
lab = Label()
lab.setOrigin(100,90)
lab.boxAnchor = 'ne'
lab.angle = 45
lab.dx = 0
lab.dy = -20
lab.boxStrokeColor = colors.green
lab.setText('Some\nMulti-Line\nLabel')
d.add(lab)
draw(d, 'Label example')
disc("""
In the drawing above, the label is defined relative to the green blob.
The text box should have its north-east corner ten points down from
the origin, and be rotated by 45 degrees about that corner.
""")
示例9: _rawDraw
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def _rawDraw(self, x, y):
from reportlab.lib import colors
from reportlab.graphics.shapes import Drawing, Line, String, STATE_DEFAULTS
from reportlab.graphics.charts.axes import XCategoryAxis,YValueAxis
from reportlab.graphics.charts.textlabels import Label
from reportlab.graphics.charts.barcharts import VerticalBarChart
self.originX = x
self.originY = y
self._setScale([self.dataBar])
(x1, y1, Width, Height) = self._getGraphRegion(x, y)
#Build the graph
self.drawing = Drawing(self.width, self.height)
#Size of the Axis
SizeXaxis = 14
countSteps = int(self.valueMax / self.valueStep)
SizeYaxis = 0.0
for n in range(countSteps + 1):
eachValue = self.valueMin + n * self.valueStep
textString = self._customSecondsLabelFormat( eachValue )
SizeYaxis = max(SizeYaxis, self._stringWidth(textString, STATE_DEFAULTS['fontName'], STATE_DEFAULTS['fontSize']) )
bc = VerticalBarChart()
SizeYaxis += bc.valueAxis.tickLeft
bc.x = x1 - x + SizeYaxis
bc.y = y1 - y + SizeXaxis
bc.height = Height - SizeXaxis
bc.width = Width - SizeYaxis
self.graphCenterX = bc.x + bc.width/2
self.graphCenterY = bc.y + bc.height/2
if self.validData:
# add valid data to chart
bc.data = self.dataBar
bc.categoryAxis.categoryNames = self.dataNames
# axis values
bc.valueAxis.valueMin = self.valueMin
bc.valueAxis.valueMax = self.valueMax
bc.valueAxis.valueStep = self.valueStep
# add value labels above bars
bc.barLabelFormat = self._customSecondsLabelFormat
bc.barLabels.dy = 0.08*inch
bc.barLabels.fontSize = 6
else:
# no valid data
bc.data = [ (0, ), ]
bc.categoryAxis.categoryNames = [ '' ]
bc.valueAxis.valueMin = 0
bc.valueAxis.valueMax = 1
bc.valueAxis.valueStep = 1
Nodata = Label()
Nodata.fontSize = 12
Nodata.angle = 0
Nodata.boxAnchor = 'c'
Nodata.dx = self.graphCenterX
Nodata.dy = self.graphCenterY
Nodata.setText("NO VALID DATA")
self.drawing.add(Nodata)
# chart formatting
(R,G,B) = VeriwaveYellow
bc.bars[0].fillColor = colors.Color(R,G,B)
bc.valueAxis.labelTextFormat = self._customSecondsLabelFormat
# axis labels
bc.categoryAxis.labels.boxAnchor = 'c'
bc.categoryAxis.labels.dx = 0
bc.categoryAxis.labels.dy = -10
bc.categoryAxis.labels.angle = 0
bc.categoryAxis.labels.fontSize = 8
# add chart
self.drawing.add(bc)
#Adjust the labels to be the center of the graph
self._drawLabels(self.title, "", "")
# Add Legend in upper right corner
legendHeight = 9
legendX = bc.x + 5
legendY = bc.y + bc.height - 12
self.drawing.add(Line(legendX, legendY + 3 , legendX + 20, legendY + 3, strokeColor=bc.bars[0].fillColor, strokeWidth=3 ))
self.drawing.add(String(legendX + 22, legendY, 'MIN', fontName='Helvetica', fontSize=8))
legendY -= legendHeight
self.drawing.add(Line(legendX, legendY + 3 , legendX + 20, legendY + 3, strokeColor=bc.bars[1].fillColor, strokeWidth=3 ))
self.drawing.add(String(legendX + 22, legendY, 'MAX', fontName='Helvetica', fontSize=8))
legendY -= legendHeight
self.drawing.add(Line(legendX, legendY + 3 , legendX + 20, legendY + 3, strokeColor=bc.bars[2].fillColor, strokeWidth=3 ))
self.drawing.add(String(legendX + 22, legendY, 'AVG', fontName='Helvetica', fontSize=8))
legendY -= legendHeight
示例10: addCompoundFeature
# 需要导入模块: from reportlab.graphics.charts.textlabels import Label [as 别名]
# 或者: from reportlab.graphics.charts.textlabels.Label import dy [as 别名]
def addCompoundFeature(drawing, xmap, y, gene,
strokeColor=None, fillColor=colors.blue,
intronColor=colors.blue, intronWidth=0.5,
glyph=Block, height=12, utrHeight=6,
labeldy=10, fontSize=10, textAnchor='middle', boxAnchor='s'):
"""Adds a compund feature to the drawing.
A compound feature is typically several exons joined by zig-zag lines."""
rise = height + utrHeight
intronStarts = [None]
intronEnds = []
heights = []
for exon in gene:
x1,x2 = xmap(exon.start), xmap(exon.end)
kind = exon.kind.lower()
if kind in ['exon', 'utr']:
intronStarts.append(exon.end)
intronEnds.append(exon.start)
g = glyph()
g.x = x1
g.y = y+height/2
if exon.kind.lower()=='exon':
g.height = height
heights.append(height)
else:
g.height = utrHeight
heights.append(utrHeight)
g.length = x2-x1
g.fillColor = fillColor
if strokeColor:
g.strokeColor = strokeColor
else:
g.strokeColor = fillColor
g.fontSize = fontSize
drawing.add(g)
for i,(intronStart,intronEnd) in enumerate(zip(intronStarts[1:], intronEnds[1:])):
x1 = xmap(intronStart)
x2 = xmap(0.5*(intronStart+intronEnd))
x3 = xmap(intronEnd)
# if abs(x3-x1)<3: continue
# print intronStart,intronEnd,heights[i],heights[i+1]
y1 = y+heights[i]/2+height/2
y2 = y+rise
y3 = y+heights[i+1]/2+height/2
line1 = Line(x1,y1,x2,y2,strokeColor=intronColor,strokeWidth=intronWidth)
line2 = Line(x2,y2,x3,y3,strokeColor=intronColor,strokeWidth=intronWidth)
drawing.add(line1)
drawing.add(line2)
# Draw arrows
if xmap.flipped:
signum = -1
else:
signum = 1
if gene.strand=='+':
x1 = xmap(gene.end)
x2 = x1 + signum*15
x3 = x1 + signum*10
y1 = y + 0.5*height
y2 = y + 0.75*height
y3 = y + 0.25*height
line1 = Line(x1,y1,x2,y1,strokeColor=intronColor,strokeWidth=intronWidth)
line2 = Line(x2,y1,x3,y2,strokeColor=intronColor,strokeWidth=intronWidth)
line3 = Line(x2,y1,x3,y3,strokeColor=intronColor,strokeWidth=intronWidth)
drawing.add(line1)
drawing.add(line2)
drawing.add(line3)
else:
x1 = xmap(gene.start)
x2 = x1 - signum*15
x3 = x1 - signum*10
y1 = y + 0.5*height
y2 = y + 0.75*height
y3 = y + 0.25*height
line1 = Line(x1,y1,x2,y1,strokeColor=intronColor,strokeWidth=intronWidth)
line2 = Line(x2,y1,x3,y2,strokeColor=intronColor,strokeWidth=intronWidth)
line3 = Line(x2,y1,x3,y3,strokeColor=intronColor,strokeWidth=intronWidth)
drawing.add(line1)
drawing.add(line2)
drawing.add(line3)
# if gene has attribute name...
label = Label()
label.setText(gene.name)
pos = 0.5*(gene.start+gene.end)
x = xmap(pos)
label.setOrigin(x,y)
label.dy = labeldy
label.textAnchor = textAnchor
label.boxAnchor = boxAnchor
drawing.add(label)