def _plot_rff(panel, left_df, right_df, colorMap, y_pos, bar_thickness, text):
""" plots a rff patch
____________ 1__________2
| #lff \ \ #rff \
| left for \ 6\ right for \3
| forward / / forward /
|___________/ /5__________/4
"""
#if there is only one feature to plot, then just plot it
print("plotting rff")
verts = [(right_df['start'], y_pos + bar_thickness), #1
(right_df['stop'] - arrow_width, y_pos + bar_thickness), #2
(right_df['stop'], y_pos + (bar_thickness/2)), #3
(right_df['stop'] - arrow_width, y_pos), #4
(right_df['start'], y_pos), #5
(left_df['stop'] + chevron_width, y_pos + (bar_thickness/2)), #6
(right_df['start'], y_pos + bar_thickness), #1
]
codes = [Path.MOVETO,
Path.LINETO,
Path.LINETO,
Path.LINETO,
Path.LINETO,
Path.LINETO,
Path.CLOSEPOLY,
]
path = Path(verts, codes)
patch = patches.PathPatch(path, lw = 0,
fc=colorMap[right_df['featType']] )
text_width = right_df['width']
if text and text_width >= min_text:
panel = _plot_label(panel, right_df, y_pos, bar_thickness)
elif text and text_width < min_text and text_width >= text_cutoff:
panel = _plot_label(panel, right_df,
y_pos, bar_thickness, rotate = True)
return panel, patch
评论列表
文章目录