Я никогда не публиковал здесь раньше, но эта проблема привела меня в тупик, и я почувствовал необходимость сделать сообщение.
Итак, у меня есть два набора данных:
триплеты : это список из 32 строк, напр. ["AAA", "ACG", "GAT"...]
mut_freqs: это список из 32 чисел относительно каждой строки в первом списке, напр. [0.12, 0.25, 0.38...]
. Этот список отсортирован от наименьшего к наибольшему, и, поскольку списки относятся друг к другу, триплеты сортируются соответственно. Итак, мы имеем в качестве примера:
triplets = ["AAA", "ACG", "GAT"]
mut_freqs = [0.12, 0.25, 0.38]
# The bar plot for this graph: "Bars that are not the same size"
# for each triplet, we have the probability that the center base will
# mutate into other bases. For example, for "AAA":
{"AAA": {"ATA": 0.50, "ACA": 0.23, "AGA": 0.27, "AAA": 0}}. # add to 100
# So, now I have:
triplets: ["AAA", "ACG", "GAT"]
A = [0.00, 0.25, 0.00]
C = [0.23, 0.00, 0.15]
G = [0.27, 0.25, 0.30]
T = [0.50, 0.50, 0.55]
# The bar plot for this graph: "Bars that are the same size"
Я хочу объединить эти графики так, чтобы размер столбцов был таким же, как на первом графике, но они разделены на столбцы с накоплением, как на втором графике. , Я понятия не имею, как это сделать. Вот мой код для столбчатой диаграммы с накоплением:
A = np.array(A)
T = np.array(T)
C = np.array(C)
G = np.array(G)
plt.bar(triplets, C, color='#ff34dd', edgecolor='white', label = "C")
plt.bar(triplets, G, bottom=C, color='#9c6547', edgecolor='white', label = "G")
plt.bar(triplets, A, bottom=G+C, color='#fce831', edgecolor='white', label = "A")
plt.bar(triplets, T, bottom=A+G+C, color='#50ed25', edgecolor='white', label = "T")
plt.title("Mutation Frequencies of Triplets")
plt.xlabel("Triplet")
plt.ylabel("Mutation Frequency")
plt.legend()
plt.xticks(triplets, rotation = 90)
plt.show()
Графики:
Столбцы, которые не имеют одинаковый размер
Бары одинакового размера
Любая помощь приветствуется! :)