【问题标题】:holoviews curve is showing all the points instead of one curve全息视图曲线显示所有点而不是一条曲线
【发布时间】:2020-06-10 16:34:40
【问题描述】:

我正在创建一个带有 holoviews 和 panel 的可视化应用程序

正如人们所看到的,这条线正在接触所有曲线不应该做的点。它应该只显示曲线或边框,如没有颜色的面积图。

我正在根据here提供的示例构建此可视化

columns = sorted(data.columns)
discrete = [x for x in columns if data[x].dtype == object or len(data[x].unique()) < 6]
quantileable = [x for x in columns if x not in discrete or  data[x].dtype == '<M8[ns]']

x = pnw.Select(name='X-Axis', value='date', options=quantileable)
y = pnw.Select(name='Y-Axis', value='height_g', options=quantileable)
size = pnw.Select(name='Size', value='None', options=['None'] + quantileable)
@pn.depends(x.param.value, y.param.value, size.param.value) 
def create_figure(x, y, size):
   if size != 'None':
            opts['size'] = hv.dim(size).norm()*5
   return hv.Curve(data, [x, y], label="%s vs %s" % (x.title(), y.title()))

widgets = pn.WidgetBox(x, y, size, width=200)
pn.Row(widgets, create_figure).servable('Cross-selector')

我怎样才能让它看起来整洁?

【问题讨论】:

  • Curve 会将每个点连接到其相邻的邻居,在这种情况下,您的点似乎没有按日期排序(或其他任何明显有用的东西!)。如果要按日期绘制数据,请先尝试按日期对数据进行排序?
  • 它可以工作,但是如何在运行时对列进行排序。这就像某个事件,然后当用户单击 x_axis 处的“日期”然后在 x_axis 处排序或第二维然后排序。有什么想法吗?
  • 想必你可以在调用hv.Curve之前对create_figure里面的数据进行排序...

标签: python panel holoviews


【解决方案1】:

我可以通过在return 中向create_figure 函数添加更多信息来解决这个问题。我更喜欢使用 hvplot 库,它是 holoviews 库的扩展。

return data.hvplot.line(x,y).sort().aggregate(function=np.mean)

sort() 实际上会完成这项工作,进一步的聚合取决于分析的需要

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    相关资源
    最近更新 更多