novus / nvd3
使用 d3.js 编写的可重复使用的图表库
Requires
- mbostock/d3: @stable
This package is not auto-updated.
Last update: 2024-09-18 17:49:04 UTC
README
受到 Mike Bostock 的 Reusable Charts 工作的启发,并由 Novus 和 NVD3 社区的共同努力支持。
使用方法
只需将 nv.d3
资产添加到您的项目中,并在您的 HTML 中包含它们。
<link href="nv.d3.min.css" rel="stylesheet">
<script src="nv.d3.min.js"></script>
nv.d3.js
应该在包含d3.js
之后出现。- 建议在生产环境中使用压缩资源(
.min
)。
依赖项
NVD3 推荐与 d3.js 版本 3.5.3 及以上版本一起使用,但不包括 d3 4.x。 版本 3.5.17 是最新的 d3 v3 版本。
所需最小 D3 版本:3.4.4
有关 D3v4 版本,请参阅nvd3 组织中的工作进度。
除了 pieChart
选项 padAngle
和 cornerRadius
外,交互式引导工具提示现在还需要这些 D3 后续版本(3.4.4+,特别是为了获取交互式工具提示)。交互式引导线依赖于更近期的 d3.bisector()
方法,该方法将接受两个参数的访问器(第二个参数是元素索引)视为比较器(请参阅 d3.bisector())。
支持浏览器
NVD3 在基于 WebKit 的浏览器上运行最佳。
- Google Chrome:最新版本
- Opera 15+(即 WebKit 版本)
- Safari:最新版本
- Firefox:最新版本
- Internet Explorer:10+
我们支持 D3 v4.x 吗?
不,我们不支持...我们非常愿意承担这项任务,但需要一些帮助。如果您想帮助实现这一目标,请告诉我们!:)
变更日志
1.8.6 更改
- 社区错误修复
1.8.5 更改
- 社区错误修复
- 新的力导向图
1.8.4 更改
- 社区错误修复,包括工具提示修复。
1.8.3 更改
- 大量社区错误修复
- 添加了力导向图表
1.8.2 更改
- 大量社区错误修复和一些额外的次要功能
1.8.1 更改
- 工具提示已重构 - 如果您自定义了工具提示,请注意您可能需要调整自定义函数,因为传递的数据格式已更改。有关更多信息,请参阅新的 工具提示选项。
- 添加了箱线图 | 示例
- 新增蜡烛图 | 示例
- 增加了额外的饼图功能 | 示例
- 增加了太阳爆发图 | 示例
- 时间序列 | 示例
- 另一种图例格式可用 | 示例
- 大量错误修复(请参阅已关闭的问题)
- (有关所有示例,请参阅此处)
1.7.1 更改
- 修复了axis.staggerLabels错误。
- 修复了Karma单元测试。
- 修复了图表测试页面。
- 合并了nvd3-community更改和开发分支。
1.7.0 更改
- 修复了大约20个小错误。
- 修复了Chrome上折线和散点图的著名缓慢问题
- 合并了scatterChart和scatterChartWithLines模型
- 合并了linePlusBarChart和linePlusBarChartWithFocus模型。
- 重命名了一些选项(请参阅新文档以了解每个图表可用的选项)
- 完成了选项函数向对象格式的迁移,这允许以自动化的方式生成文档。并非所有内容都有描述,但请查看!
- 基于d3 3.5中将要出现的功能,向饼图添加了额外的选项。饼图示例页面加载了他们的3.5分支的最新d3,请记住这一点。
- 添加了并行坐标图的示例。
- 修复了半完成的OHLC条形图,并为它制作了示例。
1.6.0 更改
- 包括大约十几个错误修复和从原始项目的问题/请求中修复并合并的请求。
- 还标准化了所有缩进
当前开发重点
- 审查悬而未决的请求和问题。
- 尝试找到一种简单的方式来实际记录使用方法和所有图表选项。
- 改进测试框架。
- 设置持续集成。
错误
发现了一个错误?请查看最新的master
分支,并确保它尚未修复!如果您看不到相关的修复,请打开一个问题。
可选依赖项
包括Fastdom在您的项目中,可以通过批量DOM读写操作来大大提高折线图的性能(尤其是在Firefox和Internet Explorer中),以避免布局抖动。NVD3将利用Fastdom(如果存在)。
贡献
如果现有的模型之一不符合您的需求,则可以分叉该项目,实现模型及其示例,发送给我们一个请求,以供考虑纳入项目中。
如果您想持续贡献,通过一些好的请求向我展示您的能力,您可能会被添加到nvd3-community组织!
请求的一些规则
- 请提交到
master
分支 - 请勿将任何内容提交到
build
目录,它会弄乱提交,并且在稍后会被覆盖。 - 所有新功能都必须提供单元测试覆盖率
- 错误修复应提供单元测试以证明其修复
如果您想使用示例页面测试您的更改,您需要运行grunt production
来将项目构建到build
目录中。您必须先这样做,因为您的更改将在示例中显示,它们链接到构建目录,以便正确展示最终产品。请记住,不要将构建文件包含在您的提交中,只包含您更改的源文件!
测试技巧
- 单元测试是用Karma和Mocha编写的。按照构建最新版中的说明来设置npm包。这可能在Windows机器上不起作用。
- 运行
bower install
来获取bower依赖项。 - 运行
grunt
来启动单元测试。 - 同时,请检查
examples/
和test/
文件夹中的HTML页面。确保没有明显的错误。 - Novus现在使用Travis CI进行持续集成。访问我们的Travis构建页面以查看最新状态。
Meteor Tinytests
- 任何特定的Meteor功能都可以使用
tinytest
和Spacejam从命令行进行测试。 - 通过运行
npm install -g spacejam
来安装spacejam
。 - 然后可以从这个项目的根目录运行
spacejam test-packages ./
来执行Tinytests。
构建最新版
- 首先克隆存储库并切换到
master
分支 - 确保通过您的系统包管理器安装了
nodejs
。 - 安装
grunt
、grunt-cli
和bower
:npm install -g grunt grunt-cli bower
使用
npm install
让node下载nvd3所需的模块。
使用
grunt production
进行构建。
现在您应该有一个包含js和css文件的build
目录。