Как сделать гистограмму с накоплением, где каждый столбец добавляет 100%, но столбцы имеют разную высоту? - PullRequest
0 голосов
/ 12 марта 2020

Я никогда не публиковал здесь раньше, но эта проблема привела меня в тупик, и я почувствовал необходимость сделать сообщение.

Итак, у меня есть два набора данных:

триплеты : это список из 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()

Графики:

Столбцы, которые не имеют одинаковый размер

image

Бары одинакового размера

image

Любая помощь приветствуется! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...