可以使用JavaScript在浏览器中渲染任何您想要的内容。这个很好的示例是这个在线建模工具列表,它可以帮助您直接在浏览器中轻松创建UML(或ER,BPMN等)图。这些工具中的大多数都使用 JavaScript 来渲染图形形状并与之交互。但是,如果您想创建自己的图表或构建自己的编辑器怎么办?别担心,我们为您提供保障。在这篇文章中,我们提供了一个 10+ JavaScript 绘图库的列表,用于编写您自己的可视化工具和/或为您的软件添加一些图形建模功能。
我们将 JavaScript 绘图库集分为两个主要类别:
简而言之,如果您正在寻找一种几乎现成的方法来将 JavaScript 建模库集成到您的工具中,请选择第一组中的库。如果您正在寻找一个更可调的解决方案,并且有时间和技能进行一些编程,请考虑从第二组中获取一个库并根据需要对其进行个性化设置。请注意,我们专注于绘制图表的库,如果您只想渲染只读图表,您可能需要查看此文本建模工具列表。
用于绘制UML(或BPMN或ERD)图的JavaScript库
JointJS可用于创建静态图或完全交互式的图工具和应用程序构建器。它还有一个商业版本(Rappid,见下文)
以下是它的一些功能:
Rappid是JointJS的商业扩展。它是一组 JointJS 插件和其他组件,在创建图表工具时提供了更多可能性和即用型功能。以下是它的一些功能:
MxGraph 是一个交互式 JavaScript HTML 5 图表库。mxGraph 是一个完全客户端的库,它使用 SVG 和 HTML 来渲染模型。例如,该库用于 Draw.io。开发始于 2005 年,虽然原始项目已存档,但这个分支仍在继续工作。
mxGraph 不使用第三方软件,它不需要插件,几乎可以集成到任何框架中。mxGraph 包包含一个用 JavaScript 编写的客户端软件,以及一系列用于各种语言的后端。客户端软件是一个图形组件,带有集成到现有 Web 界面中的可选应用程序包装器。客户端需要 Web 服务器将所需的文件传送到客户端,或者可以在没有 Web 服务器的情况下从本地文件系统运行。后端可以按原样使用,也可以以受支持的语言之一嵌入到现有服务器应用程序中。
GoJS是一个功能丰富的JavaScript / Typescript库,用于跨现代浏览器和平台实现交互式图表。GoJS 通过可自定义的模板和布局可以轻松构建复杂节点、链接和组的图表。
GoJS 为用户交互提供了许多高级功能,例如拖放、复制和粘贴、事务状态和撤消管理、调色板、概述、数据绑定模型、事件处理程序以及用于自定义操作的可扩展工具系统。它们提供了 150 多个交互式示例,可帮助您开始使用 BPMN、流程图、状态图、可视化树、Sankey 和数据流等图表。该 API 有很好的文档记录,以确保您可以立即开始使用。我们在这篇文章中广泛介绍了GoJS。
用于 UML2 图表的 HTML5/javascript 库。它的主要目标是为Web开发人员提供一种简单的方法来可视化和编辑UML模型,在我们自己的网站中,没有其他外部依赖项,并且通过浏览器在客户端完全可执行,与此列表中的其他工具不同。jsUML2 库提供了一个 API,允许 Web 开发人员使用最新的 Web 浏览器以及当前移动设备支持的 HTML5 技术在自己的网站中包含可编辑的图表。
它为特定于 UML 的模型提供了广泛的有趣功能。特别是,它支持所有主要的UML类型的图:
支持图表元素(大小,位置,颜色等)的样式版本,构造型定义,将UML图表导入/导出到XML和图像生成。
该工具已于 2017 年停产,但对于所有寻找 UML JavaScript 库的人来说,它仍然是一个强大的选择。
图表工具是100%用JavaScript编写的,并使用HTML5 Canvas元素进行绘制。该组件可以使用jQuery或Microsoft Ajax®库进行浏览器独立层和类型系统实现。
它带有一组丰富的预定义形状(用于工作流图、流程架构、类图、树,...检查他们的样本集合)以及定义自己的形状和自定义选项(例如箭头形状)的可能性。为了方便 API 的使用,他们对其进行了大量记录。您还可以使用自动图形布局算法。
Nomnoml 是一个较有名的文本建模工具,能够从文本描述中渲染 UML 图,但它也提供了一个独立的 JavaScript 库,可用于在自己的网页上呈现图。唯一的依赖关系是 lodash 和 dagre。
与nomnoml类似,Mermaid的主要重点是从文本文件生成图表,在这种情况下,通过简单的类似markdown的脚本语言。它依赖于 d3 和 dagre-d3 来提供图形布局和绘图库。它提供了一个在线编辑器,但您也可以直接重用打包的美人鱼 API 将美人鱼集成到您自己的开发中。它主要涵盖序列图和流程图。
用于创建和显示图表的核心库。它被 BPMN.io(此库的创建者)用作同一公司许多其他库的构建块,用于指定业务流程模型、决策模型和案例计划模型。
例如,bpmn-js 是渲染 BPMN 2.0 图的.js扩展。除了使用它来构建工作流建模编辑器(正如他们已经提供的那样)之外,bpmn-js 在设计时还考虑了可扩展性,因此您可以“轻松”构建某种执行/模拟引擎,例如,在其上构建某种执行/模拟引擎。
顾名思义,state.js 专注于对分层状态机进行建模。状态.js API 提供:
它是用TypeScript开发的,并转译为JavaScript;您可以使用任何一种语言。 : .
Eclipse Sprotty 和 Eclipse GLSP 工具可帮助您为自己的语言创建建模环境。因此,它们不限于UML,ER或其他特定的图表类型。相反,这些工具提供了一个后端基础结构(基于语言服务器协议的图形化),以创建您自己的语言,并提供一个基于 JS 的前端来为其构建可视化编辑器。
提供面向图形的建模基元的低级库(因此,我们在这里不列出只专注于绘制数据可视化图表的库)。事实上,其中一些已被用于构建上面列出的JavaScript建模库。
D3.js 是一个 JavaScript 库,用于基于数据操作文档。现在,我会说是同类库中最受欢迎的图书馆。
D3 可帮助您使用 HTML、SVG 和 CSS 使数据栩栩如生。D3 对 Web 标准的强调为您提供了现代浏览器的全部功能,而无需将自己绑定到专有框架,将强大的可视化组件和数据驱动的 DOM 操作方法相结合。D3 速度极快,支持大型数据集以及交互和动画的动态行为。D3 的函数式风格允许通过各种官方和社区开发的模块重用代码。
Raphaël 是一个小型的 JavaScript 库,它应该可以简化您在 Web 上使用矢量图形的工作。例如,如果您想创建自己的特定图表或图像裁剪和旋转小部件,则可以使用此库简单轻松地实现它。Raphaël 使用 SVG W3C 推荐和 VML 作为创建图形的基础。这意味着您创建的每个图形对象也是一个 DOM 对象,因此您可以附加 JavaScript 事件处理程序或稍后修改它们。Raphaël的目标是提供一个适配器,使绘制矢量艺术兼容跨浏览器且容易。它最近没有更新。
使用 Draw2D Javascript 库创建类似 Visio 的绘图、图表或工作流编辑器。用户界面允许使用标准浏览器进行交互式绘图。它声称比拉斐尔简洁得多。即使开发停滞不前,甚至还有一个演示页面。
Fabric 是一个 JavaScript HTML 画布库,在 canvas 元素之上提供了一个交互式对象模型。您可以在画布上创建和填充对象;对象,如简单的几何形状或由多个路径组成的复杂形状。Fabric 还具有 SVG 到画布(和画布到 SVG)解析器。
Paper.js 是一个运行在 HTML5 Canvas 之上的开源矢量图形脚本框架。它提供了一个干净的场景图/文档对象模型和许多强大的功能来创建和处理矢量图形和贝塞尔曲线,所有这些都整齐地包装在一个精心设计、一致和干净的编程界面中。它基于(并且在很大程度上兼容)Scriptographer,Scriptographer是Adobe Illustrator的脚本环境。
jsPlumb 提供了一种以可视化连接为核心构建应用程序的快速方法。s.它使用 SVG 并在 IE9 及更高版本的所有浏览器上运行。JsPlumbToolkit是其商业扩展。此商业版本包装了社区版,重点关注基础数据模型,以及几个有用的 UI 功能,例如布局和提供平移/缩放功能的小部件。
一个 JS 客户端库,用于创建图形和交互式体验,基于处理的核心原则,使艺术家、设计师和教育工作者可以访问编码。除了绘图之外,该项目还提供网络音频功能,碰撞检测,甚至从p5.js草图生成图形用户界面。
高度优化的开源图论网络库,可用于图分析和可视化。与所有现代浏览器兼容,并且可通过 JSON 完全(反)序列化。它还包括自动布局,集合论和图论的算法,从BFS到PageRank。
一个JavaScript库,充当dagre(在客户端布置有向图的javascript库)的前端,使用D3提供实际的呈现。该项目现已放弃。
Vis.js 是一个基于浏览器的动态可视化库。该库设计为易于使用,可处理大量动态数据,并可对数据进行操作。这个项目也被放弃了。
React Diagrams 是一个“一个超级简单、严肃的图表库,用 react 编写,只是工作”。它是一个专注于可视化流程和面向流程的图表的库。灵感来自Blender、Labview和虚幻引擎。
它完全用 Typescript 和 React 编写。它是完全可扩展的,整个库(包括其核心)可以扩展,重新布线并重新组装成根本不同的软件,以满足您自己的软件需求。它还旨在提供良好的用户体验,但确保设计人员可以尽快编辑图表。
Tldraw是此列表中的最新条目之一。Tldraw是一个“微小的绘图应用程序”,提供了许多形状来绘制简单,但清晰和优雅的图表,具有手绘风格和方便的功能,如智能箭头,捕捉和便笺。甚至还有一个VSCode扩展。
着人工智能(AI)技术的飞速发展,AI绘图已经成为了数字艺术家和爱好者们的新宠。从初学者到专业人士,每个人都在寻找能够激发创意和提高作品质量的资源。今天,我们将介绍10个顶级的 stable difussion AI绘图资源网站,能够帮助你在AI绘图的旅程中迈出坚实的一步。
1、Once Upon an Algorithm(onceuponanalgorithm.org): 这是一个非常适合初学者的网站,提供了关于如何开始使用SD1.5的基础指导。
2、 Hugging Face Spaces(huggingface.co/spaces/SmilingWolf/wd-tagger): 这个平台提供了基于现有艺术作品的提示,帮助你尝试复制这些作品。
3、 Stable Diffusion Prompts List(stablediffusion.cdcruz.com/prompts_list.html): 这个网站提供了从摄影角度到艺术风格和服装的各种提示,虽然最初是为2020年推出的NovelAI设计的,但在2024年仍然与SDXL相关。
4、 Lexica(lexica.art): 这是一个庞大的AI数据库,提供了原始提示和作品,可以帮助你获取绘图灵感。
5、Open Model Database(openmodeldb.info): 这个网站提供了通用的图像增强工具,适用于各种AI绘图需求。
6、 Lunar Mimi(lunarmimi.net/freebies/novelai-anime-girl-prompt-guide/#1basic): 这是一个参考指南,帮助你设计原创作品,包括不同的发型、姿势、情感、背景效果等,最初是为NovelAI设计的,但同样适用于SDXL。
7、Public Prompts(publicprompts.art): 这个网站直接提供了各种绘图提示词,非常直观易懂
8、OpenArt AI Promptbook(openart.ai/promptbook): 这个资源像幻灯片一样,提供了改进提示词效果的方法。
9、 Rentry SD Goldmine(rentry.org/sdgoldmine): 这个网站提供了大量对于NovelAI和SD1.5都有用的资源。
AI绘图是一个不断发展的领域,不断学习和实践是保持领先的关键。无论你是AI绘图的新手还是有经验的老鸟,这些网站都能为你的创作提供宝贵的资源和灵感。
挑战30天在头条写日记#
Apache ECharts 支持多种下载方式,可以在下一篇教程安装中查看所有方式。这里,我们以从 jsDelivr CDN 上获取为例,介绍如何快速安装。
在 https://www.jsdelivr.com/package/npm/echarts 选择 dist/echarts.js,点击并保存为 echarts.js 文件。
在刚才保存 echarts.js 的目录新建一个 index.html 文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- 引入刚刚下载的 ECharts 文件 -->
<script src="echarts.js"></script>
</head>
</html>
打开这个 index.html,你会看到一片空白。但是不要担心,打开控制台确认没有报错信息,就可以进行下一步。
在绘图前我们需要为 ECharts 准备一个定义了高宽的 DOM 容器。在刚才的例子 </head> 之后,添加:
<body>
<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
</body>
然后就可以通过 echarts.init 方法初始化一个 echarts 实例并通过 setOption 方法生成一个简单的柱状图,下面是完整代码。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ECharts</title>
<!-- 引入刚刚下载的 ECharts 文件 -->
<script src="echarts.js"></script>
</head>
<body>
<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
legend: {
data: ['销量']
},
xAxis: {
data: ['衬衫', '羊毛衫', '雪纺衫', '裤子', '高跟鞋', '袜子']
},
yAxis: {},
series: [
{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
这样你的第一个图表就诞生了!
https://github.com/apache/echarts
*请认真填写需求信息,我们会在24小时内与您取得联系。