У меня есть два набора данных omics, которые я хотел бы сравнить. Для этого я рисую один из них в виде кластерной карты, извлекаю из него порядок и рисую точно такие же гены в качестве тепловой карты, чтобы я мог провести прямое сравнение между двумя наборами данных. Однако я хотел бы показать цветные полосы для обоих, и, похоже, не могу заставить это работать.
цветная полоса для карты кластера (слева) находится там, где Мне это нужно, и размер, который мне нужен, однако он не показывает отметки Y для диапазона моих данных.
цветная полоса тепловой карты (справа) находится не там, где я хочу, слишком большой, а также не показывает галочек. Мне бы хотелось, чтобы она была точно такой же, как первая цветная полоса, но с правой стороны.
Я использовал это для объединения двух графиков, а это для настройки цветовая полоса карты кластера, но она не работает как функция тепловой карты. Я экспериментировал с cbar_kws, но не думаю, что это позволяет мне делать то, что я хочу, хотя я не до конца понимаю его потенциал.
Использование Python в VScode;
После этого я получаю сообщение об ошибке: у объекта «Axes» нет атрибута «get_array».
Я не уверен, как действовать дальше, возможно, я использую не те функции чтобы изменить это, но мне не удалось найти что-то работающее.
Кроме того, мне удалось «настроить» тепловую карту с собственным заголовком и удалить метку «группа». по оси х. Мне не удалось понять, как сделать то же самое для карты кластера, присвоить ей собственный заголовок и удалить метку «группа». Те же функции для тепловой карты здесь не работают.
Фиктивная версия моего кода, которая воспроизводит мои проблемы. Как исправить правильную цветовую панель?
Некоторая фиктивная версия моего кода, воспроизводящая проблему:
У меня есть два набора данных omics, которые я хотел бы сравнить. Для этого я рисую один из них в виде кластерной карты, извлекаю из него порядок и рисую точно такие же гены в качестве тепловой карты, чтобы я мог провести прямое сравнение между двумя наборами данных. Однако я хотел бы показать цветные полосы для обоих, и, похоже, не могу заставить это работать. [list] [*]цветная полоса для карты кластера (слева) находится там, где Мне это нужно, и размер, который мне нужен, однако он не показывает отметки Y для диапазона моих данных. [*]цветная полоса тепловой карты (справа) находится не там, где я хочу, слишком большой, а также не показывает галочек. Мне бы хотелось, чтобы она была точно такой же, как первая цветная полоса, но с правой стороны. [/list] Я использовал это для объединения двух графиков, а это для настройки цветовая полоса карты кластера, но она не работает как функция тепловой карты. Я экспериментировал с cbar_kws, но не думаю, что это позволяет мне делать то, что я хочу, хотя я не до конца понимаю его потенциал. Использование Python в VScode; [code]import matplotlib.gridspec
#clustermap from averaged protein data! g = sns.clustermap(hmprot, figsize=(8,12), col_cluster=False, yticklabels=True, cmap = 'viridis')
labels = [t.get_text() for t in g.ax_heatmap.yaxis.get_majorticklabels()]
g.gs.update(left=0.05, right=0.49)
#create new gridspec for the right part gs2 = matplotlib.gridspec.GridSpec(1,1)
hmrna = hmrna.reindex(index=labels)
# create axes within this new gridspec ax2 = g.fig.add_subplot(gs2[0])
# get position of heatmap heatmap_bbox = g.ax_heatmap.get_position() ax2.set_position([0.5, heatmap_bbox.y0, .35, heatmap_bbox.height])
# plot heatmap in the new axes sns.heatmap(hmrna, ax=ax2, cmap = 'viridis', cbar=True, yticklabels=True, cbar_kws= dict(use_gridspec=False,location = 'right', shrink= 0.5))
#change font size for the genes on the y-axis g.tick_params(axis='y', labelsize=6, labelright = False, right=False) g.tick_params(axis='x', labelbottom = True, bottom=False) ax2.tick_params(axis='y', labelsize=8, labelright=True, left=False, labelleft=False, labelrotation = 0) ax2.tick_params(axis='x', labelbottom = True, bottom=False)
#then adjusting the labels for each axis individually # g.set_xlabel(' ') -> Doesn't work ax2.set_xlabel(' ') ax2.set_title('RNAseq', weight="bold") # ax2.set_title('Proteomics(C)', weight="bold") -> Doesn't work
[/code] Я также попробовал упомянутое здесь предложение со следующим кодом; [code]cbar_2_ax = fig.add_axes([0.95, 0.04, 0.02, 0.1]) cbar_2 = mp.colorbar(ax2, cax=cbar_2_ax)
[/code] После этого я получаю сообщение об ошибке: у объекта «Axes» нет атрибута «get_array». Я не уверен, как действовать дальше, возможно, я использую не те функции чтобы изменить это, но мне не удалось найти что-то работающее. Кроме того, мне удалось «настроить» тепловую карту с собственным заголовком и удалить метку «группа». по оси х. Мне не удалось понять, как сделать то же самое для карты кластера, присвоить ей собственный заголовок и удалить метку «группа». Те же функции для тепловой карты здесь не работают. Фиктивная версия моего кода, которая воспроизводит мои проблемы. [b]Как исправить правильную цветовую панель?[/b] Некоторая фиктивная версия моего кода, воспроизводящая проблему: [code]df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) df2 = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
#clustermap from df1 g = sns.clustermap(df, figsize=(12,18), col_cluster=False, yticklabels=True, cmap = 'viridis')
g.gs.update(left=0.05, right=0.49)
#create new gridspec for the right part gs2 = matplotlib.gridspec.GridSpec(1,1)
# create axes within this new gridspec ax2 = g.fig.add_subplot(gs2[0])
# get position of heatmap heatmap_bbox = g.ax_heatmap.get_position() ax2.set_position([0.5, heatmap_bbox.y0, .35, heatmap_bbox.height]) # plot boxplot in the new axes sns.heatmap(df2, ax=ax2, cmap = 'viridis', cbar=True, yticklabels=True, cbar_kws= dict(use_gridspec=False,location = 'right', shrink= 0.5) )
[/code] Ниже приведен результат выполнения этого кода. Я выделил проблемы, которые надеюсь исправить. [img]https://i.sstatic.net/mdpKlbtD.png[/img] [img]https://i.sstatic.net/lGB0jrU9.png[/img]
Я создал функцию, которая генерирует тепловую карту на основе предоставленных данных JSON. Вариация цветов для точек данных в JSON должно следовать этим правилам:
Если вариация больше или равна +20% по сравнению с базовой линейкой, цвет должен...
Я столкнулся с проблемой с заголовком следующих графиков цветных полос при использовании библиотеки Python Matplotlib. Есть два подсюжета. Название первого работает хорошо, т. е. рендеринг LaTeX выполнен успешно. Однако для второго возвращается...
Я столкнулся с проблемой с заголовком следующих графиков цветных полос при использовании библиотеки Python Matplotlib. Есть два подсюжета. Название первого работает хорошо, т. е. рендеринг LaTeX выполнен успешно. Однако для второго возвращается...
Я создаю графический интерфейс для отображения строк из моей базы данных, который простирается достаточно далеко в обоих направлениях, поэтому мне нужны полосы прокрутки по осям X и Y. Я не уверен, стоит ли мне предоставлять больше кода. Я не буду...