2015-04-28 120 views
8

我想用Seaborn的JointGrid hexplots繪製我的非方形數據。我無法得到它不以1:1縱橫比繪製六角形。如何繪製非方形Seaborn jointplot或JointGrid

有無論如何覆蓋默認?兩個jointplotJointGrid文檔簡單地說

大小:數字,可選的身影

大小(這將是正方形)。

我也嘗試進入餵養extent kwarg既jointplot和JointGrid,以及ylim沒有運氣。

hextraj = sns.jointplot('position_x', 'position_y', ensemble) 
hextraj.plot_marginals(sns.distplot, kde=False) 
hextraj.plot_joint(plt.hexbin, extent = boundary) 
hextraj.ax_joint.set_aspect('equal') # overrides distortion 
hextraj.ax_joint.invert_yaxis() # hack to flip y-axis (lab convention) 
cax = hextraj.fig.add_axes([1, .25, .04, .5]) 
plt.colorbar(cax=cax) 

2D heatmap with unwanted padding

+0

您的問題是圖形或hexbin單元格的縱橫比? – mwaskom

+0

嗨@mwaskom,人物本身。我想擺脫填充並使其非正方形,因爲我的數據是我的座標不是方形的。 – crypdick

+0

我建議你使用matplotlib命令自己設置圖形。 – mwaskom

回答

8

偶然發現了這個問題,尋找自己的答案。想通了,我想我會發布解決方案。由於jointplot代碼似乎很堅持在具有圖廣場上,如果這被認爲是不好的做法,我不知道,但無論如何...

如果我們看一下通過jointplot代碼並按照成JointGridsize參數jointplot(和同樣JointGrid)在下面的表達式中使用:

f = plt.figure(figsize=(size, size)) 
# ... later on 
self.fig = f 

因此,要獲得非正方形JointGrid情節,只需運行:

grid = sns.jointplot(...) 
grid.fig.set_figwidth(6) 
grid.fig.set_figheight(4) 
grid.savefig("filename.png", dpi=300) 

爲6x4數字。

相關問題