2015-10-15 60 views
1

通常情况下,我会通过编辑matplotlib.rcParams来增加matplotlib的全局线宽。这似乎与SciPy's dendrogram实施直接有效,但与Seaborn's clustermap(其使用SciPy的树状图)无关。任何人都可以提出一种工作方法如何在Seaborn的clustermap树状图中指定线宽

import matplotlib 
matplotlib.rcParams['lines.linewidth'] = 10 
import seaborn as sns; sns.set() 

flights = sns.load_dataset("flights") 
flights = flights.pivot("month", "year", "passengers") 
g = sns.clustermap(flights) 

回答

1

有可能是做一个更简单的方法,但是这似乎工作:

import matplotlib 
import seaborn as sns; sns.set() 

flights = sns.load_dataset("flights") 
flights = flights.pivot("month", "year", "passengers") 
g = sns.clustermap(flights) 
for l in g.ax_row_dendrogram.lines: 
     l.set_linewidth(10) 
for l in g.ax_col_dendrogram.lines: 
     l.set_linewidth(10) 

编辑这不再Seaborn v 0.7.1工作(也可能是一些早期版本以及); g.ax_col_dendrogram.lines现在返回一个空列表。我找不到增加线宽的方法,最后我暂时修改了Seaborn模块。在文件matrix.py,功能class _DendrogramPlotter中,线宽被硬编码为0.5;我把它修改为1.5:

line_kwargs = dict(linewidths=1.5, colors='k')

这个工作,但显然并不是一个非常可持续的方法。

+0

此方法按预期工作。这也比尝试强制使用rcParams更好。 – clintval

+0

就像一个参考:这种方法似乎不再起作用。我会进一步研究,如果我找到一些我会报告。 – clintval

相关问题