我正在试图找出matplotlib和seaborn绘图函数是如何关联的。特别是,我想知道哪些pyplot参数可以传递给函数marginal_kws
中的关键字dicts annot_kws
和seaborn.jointplot()
。
假设我们的DataFrame data
包含c0
列和c1
列。我猜测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'
如何正确使用?
P.S。这个问题不是关于在seaborn中设置日志比例(我知道JointGrid
),而是将matplotlib参数作为一个整体传递给seaborn函数。
答案 0 :(得分:6)
关键字参数字典被传递给distplot
,hist_kws
获取marginal_kws={'hist_kws': {'log': True}}
的字典。所以你必须做jointplot
之类的事情。话虽如此,共享日志轴仍然是JointGrid
的持久头痛,在调整代码时我无法获得看起来很好的东西。但是,一些调整可能会让它发挥作用。
尝试使用{{1}} directly来避免这种复杂性也可能很有用。