我在海上使用PairGrid,在对角线上使用sns.distplots。
如何为对角线上的每个直方图设置不同数量的柱状图?
我在任何地方都找不到这个问题的答案,我不能简单地将柱状图设置为柱状图的数量,因为它将其作为对角线上所有直方图的柱状图的柱状图边缘。
发布于 2019-02-01 11:36:01
没有内置的方法可以将不同的参数传递给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()

https://stackoverflow.com/questions/54466588
复制相似问题