使用distplot获取(x,y)对Seaface FacetGrid对

时间:2020-03-11 17:43:59

标签: python matplotlib seaborn

我正在按照seaborn documentation中的示例绘制一些数据的累积分布:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

sns.set(style="ticks", color_codes=True)

bins = np.arange(0, 65, 5)
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, col="day", height=4, aspect=.5)
g = g.map(sns.distplot, "total_bill", bins=bins, hist_kws={"histtype":"stepfilled"})

现在,我想获取与每个bin对应的y值。我怎样才能做到这一点?

关于SO(Get data points from Seaborn distplot)的类似问题建议从绘图轴线使用get_data()

我尝试过

for ax in g.axes[:,0]:
    lines = ax.get_lines()

我得到lines<a list of 0 Line2D objects>。这意味着没有行可以呼叫get_data()

另一个问题(Python Seaborn Distplot Y value corresponding to a given X value)建议使用轴补丁中的get_height()

我尝试了

for ax in g.axes[:,0]:
    values = [h.get_height() for h in ax.patches]

,我得到一个AttributeError: 'Polygon' object has no attribute 'get_height'。确实,在get_height matplotlib API中看不到任何Polygon方法。

想法?

更新:

经过一番调查,我发现使用参数hist_kws={"histtype":"stepfilled"}使通过get_height()从条形获取数据的方式无效。

0 个答案:

没有答案