10

我试图找出 matplotlib 和 seaborn 绘图函数是如何关联的。特别是,我想知道哪些 pyplot 参数可以传递给关键字 dictsmarginal_kwsannot_kwsfunction seaborn.jointplot()

假设我们有data带有列的 DataFramec0c1. 我猜它joint_kws接受来自 的参数pyplot.hexbin(),所以当我尝试使用来自那里的参数调整外观时,它工作正常:

import seaborn as sns   
sns.jointplot('c0', 'c1', data=data,  kind='hex',
               joint_kws={'gridsize':100, 'bins':'log', 'xscale':'log', 'yscale':'log'})

然后我尝试使用以下参数在直方图轴上设置对数log=True比例pyplot.hist()

    sns.jointplot('c0', 'c1', data=data,  kind='hex',
                   joint_kws={'gridsize':100, 'bins':'log', 'xscale':'log', 'yscale':'log'}, 
                   marginal_kws={'log':True})

这导致

TypeError: distplot() got an unexpected keyword argument 'log'

如何正确放置?

PS这个问题不是关于在seaborn中设置对数比例(JointGrid我知道),而是关于将matplotlib参数作为一个整体传递给seaborn函数。

4

1 回答 1

8

关键字参数的字典被传递给distplot,它需要一个字典hist_kws。所以你必须做类似的事情marginal_kws={'hist_kws': {'log': True}}。话虽如此,共享日志轴仍然是jointplot. 不过,一些调整可能会使其正常工作。

JointGrid 尝试直接使用来避免这种复杂性也可能很有用。

于 2014-10-16T01:41:33.967 回答