如何使用holoviews从直方图数据显示cdf?

时间:2019-09-16 14:59:42

标签: bokeh holoviews hvplot holoviz

我正在将带散景后端的全息视图用于交互式可视化。我有一个带有边缘和频率数据的直方图。用累积分布(cdf)曲线覆盖直方图的一种优雅方法是什么?

我尝试在Author ID Author Name ======================================= CA == 1 Hello 3 How MI == 2 World 4 Are 中使用cumsum选项,但是我认为我做的不正确。帮助只是说,

hv.dim

我的代码看起来像

Help on function cumsum in module holoviews.util.transform:
cumsum(self, **kwargs)

结果是直方图。

有没有...

df_hist = pd.DataFrame(columns=['edges', 'freq']) df_hist['edges'] = [-2, -1, 0, 1, 2] df_hist['freq'] = [1, 3, 5, 3, 1] hv.Histogram((df_hist.edges, df_hist.freq)) ...以显示累积分布?

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案是使用如下的 histogram(cumulative = True)

from holoviews.operation import histogram

histogram(hv.Histogram((df_hist.edges, df_hist.freq)), cumulative=True)

有关转换元素的更多信息,请参见:
http://holoviews.org/user_guide/Transforming_Elements.html


或者通过将原始数据转换为hv.Dataset()来获得更通用的解决方案:

import holoviews as hv
import seaborn as sns
hv.extension('bokeh')

iris = sns.load_dataset('iris')

hv_data = hv.Dataset(iris['petal_width'])

histogram(hv_data, cumulative=True)


但是我喜欢使用hvplot库,它基于Holoviews,甚至更多:

import hvplot
import hvplot.pandas

iris['petal_width'].hvplot.hist(cumulative=True)

hvplot cumulative histogram