我在Seaborn中使用PairGrid,对角线为sns.distplots。
如何为对角线上的每个直方图设置不同数量的bin?
我在任何地方都找不到这个问题的答案,我不能简单地将bin设置为bin数量的列表,因为它将其作为对角线上所有直方图的bin边缘。
答案 0 :(得分:0)
没有内置的方法可以将不同的参数传递给PairGrid。但是,您可以依靠网格按照数据帧列的顺序连续填充的事实。因此,在所需数量的bin(或任何其他参数)上使用迭代器将允许对角线上每个子图使用不同的参数。
import matplotlib.pyplot as plt
import seaborn as sns
iris = sns.load_dataset("iris")
g = sns.PairGrid(iris)
nbins = iter([3,7,13,24])
def myhist(*args, **kwargs):
plt.hist(*args, bins=next(nbins), edgecolor="k", **kwargs)
g.map_diag(myhist)
g.map_offdiag(plt.scatter)
plt.show()