2015-10-15 62 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

相關問題