holoviews - 仅来自聚合数据的箱线图
holoviews - boxplot from aggrgated data only
我有一个大型数据集,我想在其中的某些列上绘制箱线图,以便我汇总 SQL 中的值并将它们传递给 python。
是否可以仅使用聚合值而不是原始数据在 holowievs 中创建箱线图?
任何人都可以演示这个简化的例子吗
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(1000000, 1), columns=list('A'))
你的问题有点不清楚,通过预聚合我假设你的意思是你已经计算了每个系列的均值、四分位数等,你想直接从这些绘制一个箱线图?我不认为 Holoviews 中有任何东西可以做到这一点,但直接使用 Bokeh 就足够简单了,这是我的建议:
from bokeh.plotting import figure, show
# aggregated data
cats = list("abcdef")
mean = [-0.04, 0.16, 1.07, 0.92, 1.95, 1.99]
q1 = [-0.77, -0.54, 0.25, 0.27, 1.24, 1.39]
q3 = [0.63, 0.79, 1.72, 1.63, 2.57, 2.63]
upper = [2.72, 2.70, 3.75, 3.68, 4.56, 4.50]
lower = [-2.87, -2.55, -1.38, -1.72, -0.74, -0.473]
p = figure(x_range=cats)
# stems
p.segment(cats, upper, cats, q3, color="black")
p.segment(cats, lower, cats, q1, color="black")
# boxes
p.vbar(cats, 0.7, mean, q3, fill_color="#E08E79", line_color="black")
p.vbar(cats, 0.7, q1, mean, fill_color="#3B8686", line_color="black")
# whiskers (almost-0 height rects simpler than segments)
p.rect(cats, lower, 0.2, 0.01, color="black")
p.rect(cats, upper, 0.2, 0.01, color="black")
p.xgrid.grid_line_color = None
show(p)
我有一个大型数据集,我想在其中的某些列上绘制箱线图,以便我汇总 SQL 中的值并将它们传递给 python。
是否可以仅使用聚合值而不是原始数据在 holowievs 中创建箱线图?
任何人都可以演示这个简化的例子吗
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(1000000, 1), columns=list('A'))
你的问题有点不清楚,通过预聚合我假设你的意思是你已经计算了每个系列的均值、四分位数等,你想直接从这些绘制一个箱线图?我不认为 Holoviews 中有任何东西可以做到这一点,但直接使用 Bokeh 就足够简单了,这是我的建议:
from bokeh.plotting import figure, show
# aggregated data
cats = list("abcdef")
mean = [-0.04, 0.16, 1.07, 0.92, 1.95, 1.99]
q1 = [-0.77, -0.54, 0.25, 0.27, 1.24, 1.39]
q3 = [0.63, 0.79, 1.72, 1.63, 2.57, 2.63]
upper = [2.72, 2.70, 3.75, 3.68, 4.56, 4.50]
lower = [-2.87, -2.55, -1.38, -1.72, -0.74, -0.473]
p = figure(x_range=cats)
# stems
p.segment(cats, upper, cats, q3, color="black")
p.segment(cats, lower, cats, q1, color="black")
# boxes
p.vbar(cats, 0.7, mean, q3, fill_color="#E08E79", line_color="black")
p.vbar(cats, 0.7, q1, mean, fill_color="#3B8686", line_color="black")
# whiskers (almost-0 height rects simpler than segments)
p.rect(cats, lower, 0.2, 0.01, color="black")
p.rect(cats, upper, 0.2, 0.01, color="black")
p.xgrid.grid_line_color = None
show(p)