Tablesaw项目中的散点图与气泡图可视化指南

Tablesaw项目中的散点图与气泡图可视化指南

tablesaw Java dataframe and visualization library tablesaw 项目地址: https://gitcode.com/gh_mirrors/tab/tablesaw

引言

在数据分析和可视化领域,散点图是最基础且强大的工具之一。Tablesaw作为一款优秀的Java数据分析库,提供了丰富的可视化功能。本文将深入讲解如何使用Tablesaw创建2D/3D散点图和气泡图,帮助读者掌握多维数据的可视化技巧。

基础2D散点图

我们从最简单的二维散点图开始,使用香槟酒数据集展示年份与零售价格的关系。

// 加载并过滤数据
Table wines = Table.read().csv("wine_test.csv");
Table champagne = wines.where(
    wines.stringColumn("wine type").isEqualTo("Champagne & Sparkling")
    .and(wines.stringColumn("region").isEqualTo("California")));

// 创建散点图
Plot.show(
    ScatterPlot.create("Champagne prices by vintage", 
                       champagne, "mean retail", "vintage"));

基础散点图示例

这种基础图表虽然简单,但已经能够清晰展示两个数值变量间的相关性。x轴表示年份(vintage),y轴表示平均零售价格(mean retail)。

添加第三个变量

分类变量分组

我们可以通过颜色编码添加第三个分类变量:

Plot.show(
    ScatterPlot.create("Wine prices and ratings", 
                       wines, "Mean Retail", "highest pro score", "wine type"));

分类散点图示例

图表右侧的图例不仅标识了不同颜色对应的酒类,还支持交互式显示/隐藏特定类别。

数值变量表示

对于第三个数值变量,Tablesaw提供两种可视化方案:

  1. 气泡图 - 用气泡大小表示第三个变量
  2. 3D散点图 - 用z轴表示第三个变量
气泡图实现
Plot.show(
    BubblePlot.create("Average retail price for champagnes by vintage and rating",
                champagne,
                "highest pro score",   // x轴
                "vintage",             // y轴
                "Mean Retail"));       // 气泡大小

气泡图示例

默认情况下,数值映射到气泡的直径。高级用户可以通过自定义图表改为映射到面积。

3D散点图实现
Plot.show(
    Scatter3DPlot.create("Average retail price for champagnes by vintage and rating",
                champagne,
                "highest pro score",   // x轴
                "vintage",             // y轴
                "Mean Retail"));       // z轴

3D散点图示例

3D图表支持旋转、平移和缩放交互,悬停时会显示数据标签和坐标轴参考线。

四变量可视化

我们可以进一步添加第四个变量(分类变量):

// 气泡图版本
Plot.show(
    BubblePlot.create("Average retail price for champagnes by vintage and rating",
                champagne,
                "highest pro score",
                "vintage",
                "Mean Retail",
                "appellation"));  // 第四个分类变量

// 3D散点图版本
Plot.show(
    Scatter3DPlot.create("Average retail price for champagnes by vintage and rating",
                champagne,
                "highest pro score",
                "vintage",
                "Mean Retail",
                "appellation"));

四变量气泡图 四变量3D散点图

五变量高级可视化

Tablesaw甚至支持五个变量的可视化,在3D散点图基础上,用点的大小表示第五个数值变量:

Plot.show(
    Scatter3DPlot.create("High & low retail price for champagne by vintage and rating",
                champagne,
                "vintage",          // x轴
                "highest pro score", // y轴
                "highest retail",   // z轴
                "lowest retail",     // 点大小
                "appellation"));     // 颜色分类

五变量3D散点图

最佳实践与注意事项

  1. 变量选择:将最重要的变量放在x/y轴,次要变量用大小/颜色表示
  2. 避免过度可视化:超过5个变量的图表可能难以解读
  3. 交互功能:充分利用旋转、缩放等交互功能探索3D数据
  4. 图例使用:确保图例清晰,必要时限制分类数量
  5. 性能考虑:大数据集时考虑采样或使用2D图表

结语

Tablesaw提供了从简单到复杂的多维数据可视化解决方案。通过本文介绍的各种散点图和气泡图变体,数据分析师可以有效地探索和展示数据中的复杂关系。对于更高级的需求,Tablesaw还支持完全自定义的可视化方案,为专业用户提供了充分的灵活性。

记住,好的可视化不在于展示多少变量,而在于能否清晰传达数据背后的洞见。根据你的分析目标,选择最合适的图表类型和变量组合。

tablesaw Java dataframe and visualization library tablesaw 项目地址: https://gitcode.com/gh_mirrors/tab/tablesaw

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卓桢琳Blackbird

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值