Я следовал этому руководству, чтобы создать сложенную двойную гистограмму, которая хорошо работала для моих данных, но теперь я пытаюсь отредактировать легенду, чтобы включить в нее информацию, необходимую для чтения рисунка. Я пытался следовать этому ответу, но он просто создает новую легенду поверх исходной.
[img]https://i. sstatic.net/raMIXUkZ.png[/img]
В моей легенде я хотел бы видеть
blue -> raw
orange -> spike
hatched -> CATTCCA
blank -> CATTCCT
Есть идеи, как этого добиться?
Вот мои данные:
Conds method peaks motif_CATTCCA motif_CATTCCT
TEAD1_T1_pos_1 raw_only 22424 2376 1357
TEAD1_T1_pos_1 spike_only 4086 975 246
TEAD1_T1_pos_2 raw_only 59922 6907 3899
TEAD1_T1_pos_2 spike_only 1064 611 63
TEAD1_T7_neg_1 raw_only 5650 745 346
TEAD1_T7_neg_1 spike_only 16340 2458 984
TEAD1_T7_neg_2 raw_only 64300 7812 4407
TEAD1_T7_neg_2 spike_only 662 406 29
TEAD1_T7_pos_1 raw_only 49892 4894 3109
TEAD1_T7_pos_1 spike_only 1106 598 55
TEAD1_T7_pos_2 raw_only 22666 2325 1403
TEAD1_T7_pos_2 spike_only 4558 1002 259
и код:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns
workdir = "my/dir/"
data = pd.read_csv(workdir + "motifs_under_peaks.txt", sep=" ")
data_pct = data.copy()
data_pct["motif_CATTCCA"] = data_pct["motif_CATTCCA"] / data_pct["peaks"]
data_pct["motif_CATTCCT"] = data_pct["motif_CATTCCT"] / data_pct["peaks"]
data_pct = data_pct.drop("peaks", 1)
data_pct = data_pct.melt(id_vars=["Conds", "method"], var_name="motif")
total = data_pct.groupby(["Conds", "method"])["value"].sum().reset_index()
motif_A = data_pct[data_pct.motif =="motif_CATTCCA"]
fig1, ax1 = plt.subplots()
bar1 = sns.barplot(x="value", y="Conds", hue="method", data=total, ax=ax1)
bar2 = sns.barplot(x="value", y="Conds", hue="method", data=motif_A, hatch="xxxxx", ax=ax1) ##need to add hatching into legend
fig1.legend(title="motif enrichment", loc="upper right", labels=["raw CATTCCT", "spike CATTCCT", "raw CATTCCA", "spike CATTCCA"])
Подробнее здесь: https://stackoverflow.com/questions/792 ... ed-barplot
Редактировать легенду многоуровневой диаграммы Seaborn ⇐ Python
Программы на Python
-
Anonymous
1733479519
Anonymous
Я следовал этому руководству, чтобы создать сложенную двойную гистограмму, которая хорошо работала для моих данных, но теперь я пытаюсь отредактировать легенду, чтобы включить в нее информацию, необходимую для чтения рисунка. Я пытался следовать этому ответу, но он просто создает новую легенду поверх исходной.
[img]https://i. sstatic.net/raMIXUkZ.png[/img]
В моей легенде я хотел бы видеть
blue -> raw
orange -> spike
hatched -> CATTCCA
blank -> CATTCCT
Есть идеи, как этого добиться?
Вот мои данные:
Conds method peaks motif_CATTCCA motif_CATTCCT
TEAD1_T1_pos_1 raw_only 22424 2376 1357
TEAD1_T1_pos_1 spike_only 4086 975 246
TEAD1_T1_pos_2 raw_only 59922 6907 3899
TEAD1_T1_pos_2 spike_only 1064 611 63
TEAD1_T7_neg_1 raw_only 5650 745 346
TEAD1_T7_neg_1 spike_only 16340 2458 984
TEAD1_T7_neg_2 raw_only 64300 7812 4407
TEAD1_T7_neg_2 spike_only 662 406 29
TEAD1_T7_pos_1 raw_only 49892 4894 3109
TEAD1_T7_pos_1 spike_only 1106 598 55
TEAD1_T7_pos_2 raw_only 22666 2325 1403
TEAD1_T7_pos_2 spike_only 4558 1002 259
и код:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import seaborn as sns
workdir = "my/dir/"
data = pd.read_csv(workdir + "motifs_under_peaks.txt", sep=" ")
data_pct = data.copy()
data_pct["motif_CATTCCA"] = data_pct["motif_CATTCCA"] / data_pct["peaks"]
data_pct["motif_CATTCCT"] = data_pct["motif_CATTCCT"] / data_pct["peaks"]
data_pct = data_pct.drop("peaks", 1)
data_pct = data_pct.melt(id_vars=["Conds", "method"], var_name="motif")
total = data_pct.groupby(["Conds", "method"])["value"].sum().reset_index()
motif_A = data_pct[data_pct.motif =="motif_CATTCCA"]
fig1, ax1 = plt.subplots()
bar1 = sns.barplot(x="value", y="Conds", hue="method", data=total, ax=ax1)
bar2 = sns.barplot(x="value", y="Conds", hue="method", data=motif_A, hatch="xxxxx", ax=ax1) ##need to add hatching into legend
fig1.legend(title="motif enrichment", loc="upper right", labels=["raw CATTCCT", "spike CATTCCT", "raw CATTCCA", "spike CATTCCA"])
Подробнее здесь: [url]https://stackoverflow.com/questions/79257526/edit-legend-of-seaborn-stacked-barplot[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия