Kandy实战案例:5个数据可视化场景带你掌握图表绘制精髓

📅 2026/7/12 20:36:22
Kandy实战案例:5个数据可视化场景带你掌握图表绘制精髓
Kandy实战案例5个数据可视化场景带你掌握图表绘制精髓【免费下载链接】kandyKotlin plotting library.项目地址: https://gitcode.com/gh_mirrors/ka/kandyKandy是一个强大的Kotlin绘图库为数据可视化提供了灵活而直观的DSL领域特定语言。无论你是数据分析师、数据科学家还是Kotlin开发者掌握Kandy都能让你快速创建专业级图表。本文将带你通过5个实战场景全面掌握Kandy图表绘制的精髓为什么选择Kandy进行数据可视化Kandy作为JetBrains孵化的开源项目专门为Kotlin生态设计具有以下核心优势跨平台兼容性在IntelliJ IDEA、Datalore和Jupyter等环境中无缝工作交互式图表功能支持HTML和Swing渲染的交互式工具提示多格式导出可保存为SVG、PNG、HTML、JPEG、TIFF等多种格式Kotlin集合和DataFrame支持与Kotlin DataFrame完美集成类型安全和空安全充分利用Kotlin的类型系统优势场景一基础柱状图与折线图组合在数据分析中柱状图与折线图的组合是最常见的可视化方式。Kandy通过简洁的DSL语法让这种组合变得异常简单val weatherData mapOf( time to listOf(0, 1, 2, 4, 5, 7, 8, 9), temperature to listOf(12.0, 14.2, 15.1, 15.9, 17.9, 15.6, 14.2, 24.3), humidity to listOf(0.5, 0.32, 0.11, 0.89, 0.68, 0.57, 0.56, 0.5) ) plot(weatherData) { x(time) y(temperature) { scale continuous(0.0..25.5) } bars { fillColor(humidity) { scale continuous(range Color.YELLOW..Color.RED) } borderLine.width 0.0 } line { width 3.0 color Color.hex(#6e5596) type LineType.DOTDASH } }这个简单的例子展示了如何使用Kandy创建温度与湿度关系的组合图表。柱状图表示温度颜色深浅表示湿度变化折线图则展示温度趋势。场景二地理数据可视化Kandy的地理绘图功能让你能够轻松创建地图可视化。通过kandy-geo模块你可以绘制国家、州、城市等地理数据// 加载美国各州地理数据 val usStates loadGeoData(usa_states.geojson) val electionResults loadDataFrame(election_results.csv) plot(usStates) { polygon { fillColor(electionResults[result]) { scale categorical( Democrat to Color.BLUE, Republican to Color.RED, Other to Color.GRAY ) } alpha 0.8 } layout { title 美国各州选举结果分布图 size 1000 to 600 } }地理可视化在商业分析、选举预测、人口统计等领域有广泛应用。Kandy支持GeoJSON和Shapefile格式能够处理复杂的地理边界数据。场景三时间序列数据分析时间序列数据可视化是金融、物联网、监控系统等领域的关键需求。Kandy提供了强大的时间序列处理能力val stockData mapOf( date to listOf(2024-01-01, 2024-01-02, 2024-01-03, 2024-01-04), open to listOf(150.0, 152.5, 151.8, 153.2), close to listOf(152.0, 151.5, 153.0, 152.8), high to listOf(153.0, 153.5, 154.0, 154.5), low to listOf(149.5, 150.5, 151.0, 152.0) ) plot(stockData) { x(dateString()) candlestick { open(openDouble()) close(closeDouble()) high(highDouble()) low(lowDouble()) increasingColor Color.GREEN decreasingColor Color.RED } layout { title 股票价格K线图 xAxis { label 日期 breaks listOf(2024-01-01, 2024-01-04) } yAxis { label 价格 scale continuous(145.0..155.0) } } }K线图是金融分析中最常用的图表类型之一Kandy的candlestick层专门为此设计支持完整的开盘-收盘-最高-最低价格可视化。场景四多变量统计分析对于复杂的数据集Kandy提供了丰富的统计图表功能。箱线图Boxplot是展示数据分布特征的利器val irisData DataFrame.readCSV(iris.csv) plot(irisData) { x(species) y(sepal_length) boxplot { fillColor Color.hex(#4E79A7) alpha 0.7 } points { position Position.jitter(width 0.2) color Color.hex(#59A14F) alpha 0.5 size 3.0 } layout { title 鸢尾花各物种萼片长度分布 caption 箱线图展示数据分布散点图显示个体数据点 } }这种组合图表既展示了数据的整体分布箱线图又显示了每个数据点的具体位置散点图非常适合统计分析使用。场景五交互式仪表板开发Kandy的交互式功能让创建仪表板变得简单。工具提示Tooltip是提升用户体验的关键功能val salesData mapOf( month to listOf(Jan, Feb, Mar, Apr, May, Jun), revenue to listOf(12000, 15000, 13000, 18000, 22000, 19000), profit to listOf(3000, 4000, 3500, 5000, 6000, 5500), region to listOf(North, North, South, South, East, East) ) plot(salesData) { x(month) y(revenue) bars { fillColor(region) { scale categorical( North to Color.BLUE, South to Color.GREEN, East to Color.ORANGE ) } // 添加交互式工具提示 tooltips { format {revenue} USD | Profit: {profit} USD anchor Anchor.CENTER minWidth 120.0 } } layout { title 月度销售数据仪表板 tooltip { backgroundColor Color.WHITE borderColor Color.GRAY borderWidth 1.0 } } }快速入门指南环境配置在Kotlin Notebook、Datalore或Jupyter中使用Kandy非常简单%use kandy或者在Gradle项目中添加依赖dependencies { implementation(org.jetbrains.kotlinx:kandy-lets-plot:$kandy_version) }核心概念图层Layers图表由多个图层叠加构成如bars、line、points等美学映射Aesthetics将数据属性映射到视觉属性如x、y、color、size比例尺Scales控制数据到视觉属性的转换如continuous、categorical布局Layout控制图表的整体外观如标题、坐标轴、图例最佳实践数据准备使用Kotlin DataFrame进行数据清洗和转换渐进式开发从简单图表开始逐步添加复杂功能主题定制利用Kandy的主题系统保持图表风格一致性能优化对于大数据集考虑使用采样或聚合结语Kandy作为Kotlin生态中的数据可视化利器通过简洁的DSL语法和强大的功能让数据可视化变得简单而高效。无论你是需要创建基础的商业图表还是复杂的地理数据可视化Kandy都能提供完美的解决方案。通过本文的5个实战场景你已经掌握了Kandy的核心用法。现在就开始使用Kandy让你的数据说话吧官方文档docs/topics/Getting-Started.md示例代码examples/idea-examples/API参考docs/topics/apiRef/【免费下载链接】kandyKotlin plotting library.项目地址: https://gitcode.com/gh_mirrors/ka/kandy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考