数据可视化的最佳工具/编程语言

5
到目前为止,我大多数时候使用Excel来绘制从MySQL使用PHP检索到的任何数据(偶尔使用像HighCharts这样的JS库来绘制数据)。当我需要更复杂的图表/可视化或如果有太多记录时(Excel变得很慢),这不是一个真正的选择,因此我正在寻找替代方案。然而,有太多选择了!我已经下载并尝试了诸如R和Processing之类的东西,但我还没有确信这是“仅”以漂亮的方式绘制我的数据的正确工具。

所以...我很好奇对于最佳方法的意见。学习Python?真正深入Java / processing?还有其他选择吗? (或者坚持使用PHP,您可以获得一个真正灵活的图形库? ;))

7个回答

4

我认为Python非常适合快速且丰富的数据处理。


2

我个人认为Incanter是一个非常好的工具集,我可以毫不犹豫地推荐它(我在自己的项目中用它进行可视化)。

这是一个针对Clojure的统计计算和可视化库——而Clojure本身是一种非常强大、灵活和动态的语言,特别适合用于与数据进行交互式实验。

优点:

  • 数字由parallel colt提供
  • 图表使用非常全面的JFreeChart库生成
  • 它还使用Processing进行一些可视化处理
  • Clojure本身就是一个很好的数据处理和探索语言
  • 与Java的互操作性非常好,因此您可以轻松使用任何Java库(如数据库访问、Web服务、消息队列集成、网络等)

我特别喜欢创建图表的DSL,例如要创建正态分布的1000个样本的直方图,只需执行以下操作:

(view (histogram (sample-normal 1000)))

2
我强烈推荐使用 Vega-Lite 和 Vega 进行数据可视化,无论你选择哪种语言。Vega-Lite 和 Vega 基于图形语法的思想设计,这种思想启发了 R 中流行的 ggplot2 库。其核心理念是,数据可视化应该根据如何将数据的属性映射到数据可视化的美学的声明性描述来构建。然而,Vega-Lite 和 Vega 在提供交互语法方面更进一步,允许构建交互式数据可视化和复杂的浏览器视图。此外,它在 GG 的声明性本质上提高了赌注,因为 Vega-Lite 和 Vega 规范被描述为纯数据(JSON)。因此,任何可以合理地针对 JSON 的语言都可以针对 Vega-Lite 和 Vega。
Vega-Lite 更或多或少是高级、日常数据科学工具,专注于基于非常简洁的规范提供高度杠杆和自动化。它编译为 Vega,后者是一个略低级、更强大但不那么自动化的版本。通常从 Vega-Lite 开始,只有在需要时切换到 Vega 就足够了。
有关 Vega 和 Vega-Lite 的更多信息,请参见:https://vega.github.io
最后,我想强调mikera和Ravinder Ram的观点,Clojure是一个非常适合数据科学的语言,并且随着新的机器学习库(例如MXNet最近支持Clojure)的不断出现,它变得越来越好。如果您喜欢使用Jupyter、Nextjournal、Gorilla REPL等现代科学笔记本环境,现在也有对它们的支持。
如果您想从Clojure或ClojureScript中使用Vega-Lite或Vega,则可以查看我编写的一个小而灵活的包装库Oz。

https://github.com/metasoarous/oz

如果您有兴趣在其他语言中使用Vega-Lite或Vega,由于其易于封装(例如Python、R、React),可以选择很多选项。

1

我认为Incanter是用于统计和数据可视化的Clojure库。Clojure是一种函数式语言,在数据处理和分析方面表现出色。


0

Python、Octave、C/C++等等。每种语言都有很多绘图库。

我可以推荐GPL绘图库MathGL及其前端UDAV。后者还有另一种命令语言用于绘图。


0

R语言主要用于数据科学 - 您可以进行复杂的数学数据操作和构建预测模型,但无论在方便性还是易用性上都无法帮助您。除非您打算处理一些复杂的业务逻辑或多线程,否则我认为您不需要Java。

因此,我建议您坚持使用Python - 它真的很方便用于数据处理,并且易于学习。实际上,处理数据是Python的优势所在。您还可以选择多种(这是一个好的编译,我在互联网上找到了它)数据可视化库,或者尝试在上面使用Javascript。别害怕,祝你好运!


0

我个人开始使用Python+D3.js

Python是处理数据的优秀技术 - 可以管理、转换和输出不同格式的数据。

D3.js是一个出色的数据可视化库。它比起一开始看上去要容易得多。网上有很多例子可以参考。最好的部分是,您可以生成交互式图表,允许您呈现不同的视图或随着数据深入而呈现不同级别的数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接