Skip to content

Commit 41401fa

Browse files
Wubin DingWubin Ding
authored andcommitted
update default vmax,vmin for legend_kws and add default pdf.fonttype
1 parent 437e5cb commit 41401fa

7 files changed

Lines changed: 37 additions & 7 deletions

File tree

PyComplexHeatmap/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from .dotHeatmap import *
88
from .colors import *
99
from .tools import *
10-
# from .example import *
10+
from .utils import set_default_style
1111

1212
#__all__=['*']
1313
__version__='1.4.2'

PyComplexHeatmap/annotations.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,11 @@ def __init__(self, df=None, cmap='auto', colors=None, add_text=False,
238238
self.text_kws = text_kws if not text_kws is None else {}
239239
self.plot_kws = plot_kws
240240
# print(self.plot_kws)
241+
legend_kws = legend_kws if not legend_kws is None else {}
242+
if 'vmax' in plot_kws:
243+
legend_kws.setdefault('vmax', plot_kws.get('vmax'))
244+
if 'vmin' in plot_kws:
245+
legend_kws.setdefault('vmin', plot_kws.get('vmin'))
241246
super().__init__(df=df, cmap=cmap, colors=colors,
242247
height=height, legend=legend, legend_kws=legend_kws, **plot_kws)
243248

PyComplexHeatmap/clustermap.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1003,11 +1003,13 @@ def _reorder_rows(self):
10031003
self.row_split = self.row_split.to_frame(name=self.row_split.name)
10041004
cols = self.row_split.columns.tolist()
10051005
row_clusters = self.row_split.groupby(cols).apply(lambda x: x.index.tolist())
1006-
if self.row_split_order is None:
1006+
if len(cols)==1 and self.row_split_order is None:
10071007
# calculate row_split_order using the mean across all samples in this group of
10081008
# values of mean values across all samples
10091009
self.row_split_order = row_clusters.apply(lambda x: self.data2d.loc[x].mean(axis=1).mean())\
10101010
.sort_values(ascending=False).index.tolist()
1011+
else:
1012+
self.row_split_order=row_clusters.sort_index().index.tolist()
10111013
self.row_clusters = row_clusters.loc[self.row_split_order].to_dict()
10121014
elif not self.row_cluster:
10131015
self.row_order = [self.data2d.index.tolist()]
@@ -1050,11 +1052,13 @@ def _reorder_cols(self):
10501052
self.col_split = self.col_split.to_frame(name=self.col_split.name)
10511053
cols = self.col_split.columns.tolist()
10521054
col_clusters = self.col_split.groupby(cols).apply(lambda x: x.index.tolist())
1053-
if self.col_split_order is None:
1055+
if len(cols)==1 and self.col_split_order is None:
10541056
# calculate col_split_order using the mean across all samples in this group of
10551057
# values of mean values across all samples
10561058
self.col_split_order = col_clusters.apply(lambda x: self.data2d.loc[:,x].mean().mean())\
10571059
.sort_values(ascending=False).index.tolist()
1060+
else:
1061+
self.col_split_order=col_clusters.sort_index().index.tolist()
10581062
self.col_clusters = col_clusters.loc[self.col_split_order].to_dict()
10591063
elif not self.col_cluster:
10601064
self.col_order = [self.data2d.columns.tolist()]

PyComplexHeatmap/colors.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
from matplotlib.colors import LinearSegmentedColormap,ListedColormap,CSS4_COLORS
66
import random
77
from .utils import _calculate_luminance
8-
plt.rcParams['figure.dpi'] = 100
9-
plt.rcParams['savefig.dpi']=300
108

119
def define_cmap():
1210
all_cmaps=matplotlib.pyplot.colormaps()

PyComplexHeatmap/utils.py

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,26 @@
1111
import matplotlib.patches as mpatches
1212
mm2inch=1/25.4
1313
# =============================================================================
14+
def set_default_style():
15+
from matplotlib import rcParams
16+
D={
17+
'font.family':['sans serif'], #'serif',
18+
# 'mathtext.fontset':'dejavuserif',
19+
'font.sans-serif':['Arial'],
20+
'pdf.fonttype':42,
21+
22+
# Remove legend frame
23+
'legend.frameon': True,
24+
25+
# Savefig
26+
'figure.dpi': 100,
27+
'savefig.bbox': 'tight',
28+
'savefig.dpi':300,
29+
'savefig.pad_inches': 0.05
30+
}
31+
32+
rcParams.update(D)
33+
# =============================================================================
1434
def _check_mask(data, mask):
1535
"""
1636
@@ -373,6 +393,7 @@ def plot_cmap_legend(cax=None,ax=None,cmap='turbo',label=None,kws=None,label_sid
373393
"""
374394
label='' if label is None else label
375395
cbar_kws={} if kws is None else kws.copy()
396+
cbar_kws.setdefault('label',label)
376397
# cbar_kws.setdefault("aspect",3)
377398
cbar_kws.setdefault("orientation","vertical")
378399
# cbar_kws.setdefault("use_gridspec", True)
@@ -390,7 +411,7 @@ def plot_cmap_legend(cax=None,ax=None,cmap='turbo',label=None,kws=None,label_sid
390411
cmap=cmap)
391412
cax.yaxis.set_label_position(label_side)
392413
cax.yaxis.set_ticks_position(label_side)
393-
cbar=ax.figure.colorbar(m,cax=cax,label=label,**cbar_kws) #use_gridspec=True
414+
cbar=ax.figure.colorbar(m,cax=cax,**cbar_kws) #use_gridspec=True
394415
# cbar.outline.set_color('white')
395416
# cbar.outline.set_linewidth(2)
396417
# cbar.dividers.set_color('red')
@@ -633,4 +654,6 @@ def plot_legend_list(legend_list=None,ax=None,space=0,legend_side='right',
633654
else:
634655
boundry = ax1.get_position().y0 - max_width / ax.figure.get_window_extent().width
635656
return legend_axes,cbars,boundry
636-
# =============================================================================
657+
# =============================================================================
658+
659+
set_default_style()

data/Layout.xlsx

3.9 KB
Binary file not shown.

data/tcga_lung_adenocarcinoma_provisional_ras_raf_mek_jnk_signalling.txt

100755100644
File mode changed.

0 commit comments

Comments
 (0)