|
| 1 | +发表于稀土掘金/知乎 |
| 2 | + |
| 3 | +--- |
| 4 | +theme: github |
| 5 | +--- |
| 6 | +<div align="center"> |
| 7 | + <img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9eb1c57eff6742bfa7ba4a834271b4f5~tplv-k3u1fbpfcp-watermark.image?" alt="logo" width=150 height=150 /> |
| 8 | + <br> |
| 9 | + <em>ECharts Java</em> |
| 10 | +</div> |
| 11 | +数据可视化库 |
| 12 | + |
| 13 | +由百度开发的大名鼎鼎的 [Apache ECharts](https://echarts.apache.org/en/index.html) 想必是当下最流行的数据可视化库之一,其支持的丰富的图表类型、炫酷的动画效果、以及简单易上手的代码,让人很难不心动。但对于广大的Java开发者而言,想要在后端支持Apache ECharts却是个幸福的难题——虽然Apache ECharts功能的强大让人十分眼馋,但是它本身采用TypeScript编写,后端没法直接使用。稍微了解ECharts一些的小伙伴可能知道,ECharts主要的参数是Option对象,该对象存储了所有和可视化相关的数据、图表类型和交互方法。那么在一些前后端不分离的场景下,怎么用Java构造Option对象呢?[ECharts Java](https://github.com/ECharts-Java/ECharts-Java)帮你解决了这个问题。 |
| 14 | + |
| 15 | +这里有人可能会说,现在都是前后端分离的时代了,为什么还要解决这个问题呢?诚然,前后端分离逐渐成为大势所趋,但无可否认,前后端不分离的需求也仍然大量存在。或许是旧的系统仍需要在后端支持数据可视化的渲染,或许是学生的学期项目的硬性要求,或许是一些后端开发者对前端语言不是很熟悉......如果你在github里搜索“ECharts Java”,排名第一的library拥有1k的star,其需求量可见一斑。但是很可惜,它仅支持2.x/3.x版本的Apache ECharts,而现在ECharts已经更新到了5.x版本。为了填补当下支持最新版本的ECharts的Java类库的空白,我们的[ECharts Java](https://github.com/ECharts-Java/ECharts-Java)诞生了。 |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +### ✨安装 |
| 20 | +Maven项目 |
| 21 | +```xml |
| 22 | +<dependency> |
| 23 | + <groupId>org.icepear.echarts</groupId> |
| 24 | + <artifactId>echarts-java</artifactId> |
| 25 | + <version>1.0.3</version> |
| 26 | +</dependency> |
| 27 | +``` |
| 28 | +Gradle项目 |
| 29 | + |
| 30 | +```xml |
| 31 | +implementation 'org.icepear.echarts:echarts-java:1.0.3' |
| 32 | +``` |
| 33 | + |
| 34 | +### 🌠特性 |
| 35 | +- 简单、整洁、高度组织化的 API 接口,支持链式调用 |
| 36 | +- 完整保存 Apache ECharts 的功能 |
| 37 | +- 快速集成至当前流行的 Web 框架 |
| 38 | +- 灵活的导出格式,支持 HTML、PNG 和 JSON |
| 39 | +- 完整、详细的文档和示例库 |
| 40 | + |
| 41 | + |
| 42 | +### 🔭 使用 |
| 43 | + |
| 44 | +简简单单几行可以生成一个交互性很强的动态柱形图(还可以一键下载哦) |
| 45 | + |
| 46 | +生成的index.html如下, |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | +如果想生成JSON格式的Option对象怎么办呢?也只需要几行的功夫! |
| 55 | + |
| 56 | +生成的表示Option的JSON文件像这样, |
| 57 | + |
| 58 | + |
| 59 | +你以为这样就完了?NoNoNo,我们深知后端开发者的不容易,把ECharts Java和一些流行的后端框架像SpringBoot等巧妙地结合了起来。 |
| 60 | + |
| 61 | + |
| 62 | + |
| 63 | +更多使用指南请参阅我们的[文档](https://echarts.icepear.org/#/zh-cn/)和[代码仓库](https://github.com/incandescentxxc/ECharts-Java-Examples)。 |
| 64 | + |
| 65 | +### 🎇 Demo |
| 66 | + |
| 67 | + |
| 68 | + |
| 69 | + |
| 70 | + |
| 71 | + |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | + |
| 83 | + |
| 84 | + |
| 85 | + |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | + |
| 90 | + |
| 91 | + |
| 92 | + |
| 93 | + |
| 94 | + |
| 95 | + |
| 96 | + |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | + |
| 104 | + |
| 105 | + |
| 106 | + |
| 107 | + |
| 108 | + |
| 109 | + |
| 110 | +## 💌 彩蛋 |
| 111 | + |
| 112 | +- 本项目灵感来源于[卡耐基梅隆大学](https://www.cmu.edu/)的课程,[Principles of Software Construction Objects, Design, and Concurrency](https://cmu-17-214.github.io/f2021/)。我们在此真诚地感谢 [Christian](https://www.cs.cmu.edu/~ckaestne/) 和 [Vincent](https://vhellendoorn.github.io/) 在 2021 秋天教授的这门课程。 |
| 113 | +- 在2022春天教授的该课程里,作者[@incandescentxxc](https://github.com/incandescentxxc)也作为助教,将该库作为推荐可视化库融入到课程的一个作业里,超过30人使用了该库,ECharts Java也受到大家一致的好评。 |
| 114 | +- 本项目同样也受到 [pyecharts](https://github.com/pyecharts/pyecharts) 和 [go-echarts](https://github.com/go-echarts/go-echarts) 的启发。 |
| 115 | + |
| 116 | +## 💡 作者 |
| 117 | + |
| 118 | +- [@IcePear-Jzx](https://github.com/IcePear-Jzx) |
| 119 | +- [@incandescentxxc](https://github.com/incandescentxxc) |
| 120 | + |
| 121 | +欢迎大家使用和提任何有关的改进建议!最后,别忘了给我们在Github上给该项目点一个star哟! |
| 122 | + |
| 123 | + |
| 124 | + |
0 commit comments