设计Interact Data Explorer

2020-05-17 03:37:38

我花了大部分的专业时间来设计和构建数据产品--数据仪表板或数据可视化原型等分析应用程序,用于理解算法或数据集。我花了大量的时间来开发一种称为符号的图表框架,该框架用于许多这些数据产品中的图表,但我的时间要少得多。

如果您只对新的数据资源管理器中提供的功能感兴趣,只需跳到如何使用数据资源管理器。

数据可视化有两个主要领域:应用程序和工具。在数据可视化的上下文中,工具是D3之类的库或Tableau之类的平台,它们允许您构建仪表板或报表等数据产品。到目前为止,我还没有做过太多工作的第三个方面是:自动数据可视化。因此,当我被要求为Interact笔记本平台开发一个数据资源管理器时,我很兴奋地想知道我是否可以为这个重要的数据可视化领域增加一些东西。

自动可视化是指任何允许您插入表或其他结构化数据集并循环浏览其视图的平台。您可以选择一个表,并将其视为条形图或饼图,希望不同的视图将显示对您的数据的洞察力。

在某种程度上,所有的数据可视化在用于探索性数据分析时都有一个自动模式。像Tableau这样的商业智能(BI)工具允许您通过试验不同的视图来设计仪表板和报告。ggplot2采用预期的数据结构,并使用友好的默认图表进行响应,使您可以相对轻松地在视图之间循环。

这类工具与Interact data explorer的不同之处在于,data explorer不是为生成最终报告或仪表板而设计的。相反,它只是提供了一组图表,让您可以大致了解笔记本中的数据。当笔记本用户知道他们想要展示和强调的内容时,他们可以使用多种方法来创建最终的数据可视化产品,而数据资源管理器并不意味着要与这些方法竞争。

以适当的方式汇总数据。这意味着提供将单个行相互比较的能力,也提供对行组进行比较的能力。例如,条形图是跨行比较指标的好方法,散点图是跨行比较两个指标之间相关性的好方法。但是数据资源管理器还应该启用分组和嵌套数据的基本方法,因为这对于有效的汇总可能很重要。这允许使用强调分布和层次结构的汇总图表。

支持多种视图进入数据。这个版本取代的原型数据资源管理器只有数据帧的简单折线图和条形图视图。如果您只对跨行测量度量的数字精度感兴趣,这是可以接受的。但是,如果您的数据帧表示边缘列表,那么它将非常无用。类似地,如果您想查看大量的点,您需要一个图表来显示两个度量之间的相关密度,而不是单个点。

将组件打包,以供其他查询结果接口重用。在Netflix,我们有一个内部SQL查询应用程序,它可以返回可以从相同的可视化组件中受益的结果。

data explorer利用在Pandas中实现的表格数据资源模式。它是一种简单的数据格式,具有一些预期的属性:

虽然它不是模式的一部分,但进一步的预期是,数据资源管理器只需要处理数百个数据点,而不是数千个或更多数据点。

碰巧我一直在开发一个图表框架,它采用数据模型的结构化视图与数据可视化方法相结合。与其他图表库不同的是,Signical没有条形图组件或Piehart;组件,而是有三个框架表示绑定到不同数据结构的共享数据可视化方法。Data Explorer使用所有三个符号框架:

符号学的设计方式意味着实现各种图表让用户在浏览时尝试不同的数据表示方式是相当琐碎的。例如,<;NetworkFrame>;不仅显示力定向网络,而且还显示许多不同的拓扑导向图,如树状图、树状图、桑基图和圆圈堆积。

您可以使用的一个样本数据集来自“世界幸福报告”(World Happness Report)。它提供了世界各国的幸福得分和排名,以及用于得出幸福得分的指标。在我的活页夹上有一个可以随时使用的笔记本(请耐心等待,加载可能需要30秒)。以下是数据资源管理器处理此数据集的方式。

当您显示数据帧时,系统会为您提供数据帧中的数据网格:

右侧的每个图标都表示可用于检查数据的不同数据可视化模式。

第一种模式允许您使用简单的条形图浏览数据。您可以查看各个行并与之交互,但为清晰起见,只有顶行会着色。更改下拉列表中的指标将调整条形图的顺序和显示。

您还可以按类别聚合行,并使用二级度量对宽度进行编码,以生成类似Merimekko的图表。请记住,聚合只是相加的-并且不提供更多的功能-因此,当选择“Region”时,系统会测量幸福感得分的总和,显示国家较多的地区的值较高。

虽然聚合是条形图模式的一项功能,但如果您对更仔细地查看汇总数据感兴趣,您应该使用下一种数据资源管理器模式-由一个框图图标表示-该模式显示汇总可视化。默认摘要图表是显示各个项目的小提琴曲线图(可用于悬停交互以了解更多详细信息)。

除了更改度量和汇总类别之外,您还可以测试其他汇总可视化类型:欢乐图、框图、热图和直方图。

第三种数据资源管理器模式是一个简单的散点图,它还包括大小编码选项(如果您觉得需要创建一个像Hans Rosling那样的渐变符号图),以及一些最高值点的基本注释。

散点图下面是一个六进制图标。六进制数对于探索较大数据集的密度很有用。六角箱将向您显示悬停时的聚合点。图例指示哪个十六进制具有最大值,以及绘图的密度以该最大值的百分比表示。

Data Explorer有两个可用的网络图:用于流的Sankey图和用于传统SNA类方法的力定向网络图。不幸的是,非网络样本数据并不能很好地满足这两个要求;但是,如果您有网络数据,您可以使用值选择器来告诉Data Explorer您希望在流程图或边权重中显示哪个度量。

网络可视化下方是一个树图标,允许您探索分层模式。使用类别按钮选择如何嵌套数据。如果您处于树状地图或分区模式,则将使用选定的度量来调整可视化的大小。

data Explorer还有一个并行坐标视图,它允许您通过调整每列上的画笔来交互地分析数据,以过滤数据,使其只显示满足所选过滤器的条目。可以拖动画笔,并且可以调整它们的顶部和底部,以对应于要将数据过滤到的每个指标的范围。使用浏览/过滤按钮在调整画笔或在各个点上悬停之间切换。

数据资源管理器中存在折线图模式,您可以使用该模式查看指标的组合以及它们在百分比和聚合形式中的显示方式。将来,当数据与时间序列或顺序数据一起发送时,应该将其升级为真正的时间序列可视化。

自动数据可视化受到几个因素的限制,其中只有一个是所使用的图表技术的灵活性。在当前的原始版本中,data Explorer为您的数据提供了许多可能的视图,但是它没有建议您应该使用哪种视图。这可以通过更健壮的数据模型来改进:

基数:通过描述某些字段的基数,可以更容易地确定字符串是名称(高基数)还是类别(低基数)。

预处理:尽管任何自动数据可视化都应该处理表格数据,但是使用该格式表示某些类型的数据是一个挑战。可以将更好地存储时间序列数据、数据概要草图和拓扑数据的某种方式与用于可视化和探索数据的更健壮的方法联系在一起。

特征。您在散点图视图中看到的简单注释是符号学的一个主要特性,但是注释很难自动生成。发现数据特征的启发式方法,无论是通过异常检测还是其他方法,都将允许对数据可视化进行丰富的注释。

这是我构建某种自动数据探索工具的第一次尝试,我相信它还可以改进。考虑到这一点,我希望在Interact中使用它的任何人都能放心地提交错误报告和功能请求。即使没有这些投入,我也可以看到三个方面可以进行有价值的改进:

UI改进:开发数据资源管理器的要求之一是使用原生HTML控件。直到我尝试仅使用本机元素实现一个吸引人、深思熟虑的UI时,我才意识到我对自定义UI元素的依赖程度有多高。除了看起来更漂亮之外,许多控件还可以设计得更好,并有更多关于按钮功能的内置说明。尤其是,不同视图之间的导航应该具有更好的信息层次结构,以提醒用户不同的图表方法是如何相关的。

小倍数:用于探索的最有用的数据可视化技术之一是使用小倍数-许多图表具有共享的数据和/或比例,以跨维度进行比较和对比。

保存状态:正如我前面提到的,data Explorer并不是要与传统的笔记本数据可视化竞争。但是,如果数据的视图保存在单元格中并且不会在重新加载时丢失,那么它仍然是有用的。

根据我的经验,自动数据可视化产品的缺点是没有一个总体主题的特性列表。除了为用户提供过多的图表之外,我希望data explorer能够做的一件事是更好地将数据可视化与数据探索结合起来。