novus/nvd3

使用 d3.js 编写的可重复使用的图表库

维护者

详细信息

github.com/novus/nvd3

主页

源代码

问题

安装数量: 164,642

依赖项: 2

建议者: 0

安全性: 0

星标: 7,219

关注者: 308

分支: 2,148

开放性问题: 565

语言:JavaScript

v1.8.6 2017-08-24 01:23 UTC

README

受到 Mike Bostock 的 Reusable Charts 工作的启发,并由 Novus 和 NVD3 社区的共同努力支持。

查看示例 | 新文档! | 开发构建状态: Build Status

使用方法

只需将 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 选项 padAnglecornerRadius 外,交互式引导工具提示现在还需要这些 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组织!

请求的一些规则

  1. 请提交到master分支
  2. 请勿将任何内容提交到build目录,它会弄乱提交,并且在稍后会被覆盖。
  3. 所有新功能都必须提供单元测试覆盖率
  4. 错误修复应提供单元测试以证明其修复

如果您想使用示例页面测试您的更改,您需要运行grunt production来将项目构建到build目录中。您必须先这样做,因为您的更改将在示例中显示,它们链接到构建目录,以便正确展示最终产品。请记住,不要将构建文件包含在您的提交中,只包含您更改的源文件!

测试技巧

  • 单元测试是用Karma和Mocha编写的。按照构建最新版中的说明来设置npm包。这可能在Windows机器上不起作用。
  • 运行bower install来获取bower依赖项。
  • 运行grunt来启动单元测试。
  • 同时,请检查examples/test/文件夹中的HTML页面。确保没有明显的错误。
  • Novus现在使用Travis CI进行持续集成。访问我们的Travis构建页面以查看最新状态。

Meteor Tinytests

  • 任何特定的Meteor功能都可以使用tinytestSpacejam从命令行进行测试。
  • 通过运行npm install -g spacejam来安装spacejam
  • 然后可以从这个项目的根目录运行spacejam test-packages ./来执行Tinytests。

构建最新版

  1. 首先克隆存储库并切换到master分支
  2. 确保通过您的系统包管理器安装了nodejs
  3. 安装gruntgrunt-clibowernpm install -g grunt grunt-cli bower

使用npm install让node下载nvd3所需的模块。

使用grunt production进行构建。

现在您应该有一个包含js和css文件的build目录。