Ich versuche, einen Bereich auf der X-Achse mit mehr als einer Farbe zu markieren. Ich habe es geschafft, eine Lösung zu finden, indem die Region entlang der x-Achse sectioning, wie in dieser Figur gezeigt: Pyplot axvspan: Mehrere Farben in einem Bereich (vertikal)
Aber ich möchte eine Lösung, wo die Schnitte auf der y-Achse statt geschieht. Nehmen Sie 6362 in der Handlung als Beispiel. Gibt es eine Möglichkeit, etwas wie einen gestrichelten Balken zu kreieren, wo jeder andere Bindestrich (oder wie auch immer er genannt wird) lila und rot ist?
bearbeiten Hier ist der entsprechende Code für jeden Unterabschnitt horizontal markieren
# Find exon's index
e_index = sorted(list(all_samples.ensembl_exon_id.unique())).index(exon)
# Total x-axis span incl offsets
xmin = e_index-0.25 # Start of x-span
xmax = e_index+0.25 # End of x-span
diff = xmax-xmin # Length of entire span
buf = diff/len(s_names) # Length of each subsection
# Go through each sample
for sname in s_names:
# Get color of this sample
s_color = colors[sname]
# Get index of this sample
order = list(s_names).index(sname)
# Calc xmin and xmax for subsection
s_xmin = xmin + (buf * order)
s_xmax = s_xmin + buf
# Highlight
plt.axvspan(xmin=s_xmin, xmax=s_xmax, alpha=0.25, color=s_color, zorder=0.6, ymin=0, ymax=1)
Sie werden bauen, dass Patches verwenden Ich denke: http://matplotlib.org/examples/shapes_and_collections/artist_reference.html, ohne den Code zu sehen und Daten ist es schwer zu sagen. – armatita
@armatita Alles klar, ich werde in Patches schauen, danke. Ich habe den Code für die aktuelle Hervorhebung hinzugefügt, wenn Sie einen Blick darauf werfen möchten. – Plasma