nvd3 堆积面积图看起来有问题如何修复?

2023-11-30

我的堆积面积图如下所示:

enter image description here

我使用的数据具有相同数量的值,就像示例中一样。我使用的数据位于:http://pastebin.com/D07hja76

除了选择器之外,我使用的代码也几乎相似:

var colors = d3.scale.category20();
keyColor = function(d, i) {return colors(d.key)};

nv.addGraph(function() {
  chart = nv.models.stackedAreaChart()
                .useInteractiveGuideline(true)
                .x(function(d) { return d.t })
                .y(function(d) { return d.v })
                .color(keyColor)
                .transitionDuration(300)

  chart.xAxis
    .tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });

  chart.yAxis
    .tickFormat(d3.format(',.0f'));

  d3.select('#browserBreakdown')
    .datum(browserchartdata)
    .transition().duration(500)
    .call(chart)
    .each('start', function() {
        setTimeout(function() {
            d3.selectAll('#browserBreakdown *').each(function() {
              if(this.__transition__)
                this.__transition__.duration = 1;
            })
          }, 0)
      })

  nv.utils.windowResize(chart.update);

  return chart;
});

我怎样才能让图表看起来正确?


NVD3 图表不会沿 x 轴将数据点按从左到右的顺序排序,因此您会得到奇怪的纵横交错形状。

我认为有某种方法可以告诉 NVD3 对数据进行排序,但他们几乎没有文档,我无法快速弄清楚。相反,您可以使用此函数对数据进行排序before您将其添加到图表中:

   data.forEach(function(d,i){ 

      d.values = d.values.sort(
          function(a,b){
             return +a.t -b.t;
          }
      );
   });

这是如何运作的:

  • data是 JSON 文件中的对象数组(您可以使用browserchartdata);

  • JavaScriptArray.forEach(function(){})方法为数组的每个元素调用传入的函数,并向该函数传递数组的元素及其索引;

  • JavaScriptArray.sort()方法使用传入的函数创建数组的排序版本,以确定两个元素 (a and b) 比较;

  • 我创建的排序函数使用.t数组中每个元素的变量(用于 x 轴)来确定是否a大于b(因此应该在排序数组中追随它);

  • 我称这个排序函数为values每个数据行的数组,然后覆盖未排序的values数组,这样里面的对象data所有的值最终都根据从最小到最大的顺序排序t.

我在 NVD3 的“实时代码”网站上用您的数据进行了尝试,看起来不错。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nvd3 堆积面积图看起来有问题如何修复? 的相关文章

  • D3 时间解析返回 null

    根据此页面上的说明 https github com mbostock d3 wiki Time Formatting https github com mbostock d3 wiki Time Formatting我正在尝试解析 ISO
  • 表格中与文本一起内嵌 D3 迷你图

    假设有一个这样的表 var data Orange Orange 6 3 3 2 5 Apple Red 6 2 6 5 5 Grape Purple 9 1 2 3 1 我希望将字符串表示为字符串 但将数字数组表示为 D3 折线图 如果这
  • 赋予 d3 序数轴标签与尺度名称不同

    我有一个序数scale具有不同值的某些标签 我想显示该比例的轴 其中轴标签与比例标签不同 我有这个代码 var width 1000 var height 600 var margins left 100 40 right 25 botto
  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • 如何在 d3.js 中填充 svg 圆圈内的图像

    这是我在 svg 中填充圆圈的代码 var svgContainer d3 select body append svg attr width 1000 attr height 1000 var circles svgContainer s
  • 创建链接到 csv 文件的表

    我正在尝试创建一个链接到的表 csv使用 d3 文件 但我得到的只是一个空白网页 即使以克里米亚为例 我也得到一张空白页 我将很高兴得到指导或展示一个可行的例子或关于我做错了什么的建议 如果您询问如何从 CSV 数据创建 HTML 表 这就
  • D3js:如何设计地形图?

    给定具有高程数据的 GIS 栅格 如何在D3js中设计地形图 有没有使用 D3js 制作的耕地地形图 地形图的示例 不工作 我探索了以下可能性 tif gt gdal contour py gt shp gt topojson gt d3j
  • 如何在 d3.js 中的节点上制作双击事件?

    我想在节点上进行双击事件 所以我尝试了 on dbclick function d return http google com and bind dbclick function d alert hello 但一切都失败了 谁能帮我 完整
  • Chart.js,设置最大值

    我正在制作雷达图Chart js 但它只会变得与其中的最大值一样大 我希望将其设置为标准最大值 因此范围是 0 到 100 您可以看到您在不同主题上的进度如何 有谁知道如何设置雷达图的最大范围值Chart js 我尝试添加一个设置为 100
  • 如何将 C3 图表添加到 Angular 2+ 项目

    我搜索了很多有关 Angular2 图表包的信息 但没有 C3 js 的名称 直到我在下面的链接中找到了 C3 js 图表的示例 ani angular strapui com dashboard charts c3 chart http
  • 处理重叠 SVG 图层中的鼠标事件

    我正在使用 d3 js 构建地图可视化 我正在为美国各州和县绘制填充多边形 县的 SVG 图层位于州图层下方 状态已填充 但填充不透明度设置为 0 我认为 需要填充来捕获点击事件 我想捕获州级的点击事件 但我想捕获县级的鼠标悬停事件 但是
  • 可以在 d3.js 中使用具有固定圆圈大小的圆圈包布局吗?

    此圆形包布局示例 http bl ocks org 4063269 http bl ocks org 4063269 非常适合我正在从事的项目 但是它会调整所有圆圈相对于彼此的大小 有没有一种简单的方法来指定每个圆的固定半径 我已经搜索了源
  • Google 图表,聚合/分组过滤后的数据表

    我有一个 DataTable 一个 DateRangeFilter 和一个聚合对象 我希望可以使用 DateRangeFilter 来过滤 DataTable 中的数据并将聚合限制为 FILTERED DataTable 但这并没有发生 我
  • 如何使用 d3.js 沿 GeoJSON 路径对对象进行动画处理?

    我正在使用 D3 js 从 GeoJSON 文件生成并渲染路径 效果很好 但现在我想沿着该路径为对象设置动画 我知道如何使用 D3 和标准 SVG 来做到这一点 创建过渡并设置其持续时间 对于过渡的每一帧 使用 Complete 查找沿路径
  • 如何使用 dc.js 或 d3.js 为行图添加轴标签

    对于条形图和堆积图 我们可以使用 xAxisLabel X Axis Label and yAxisLabel Y Axis Label 为各个轴添加标签的函数 但 有没有办法为行图添加轴标签 尝试这样的事情 dc renderAll fu
  • SVG 文本在 IE 中消失,直到我单击它

    我在 Internet Explorer Edge 以 Win7 上的为准 中遇到与 SVG 创建和操作相关的问题 在我正在开发的应用程序中 我们使用 d3 生成 SVG 形式的图形 在 Chrome 和 Firefox 中 它们工作得很好
  • 在 D3 v4 中使用 Zoom.translateExtent 约束地图平移

    我正在尝试显示单个州的地图 并将缩放和平移限制在州的边界内 除了缩放状态路径以适应较小的容器时的平移约束之外 它大部分都在工作 我认为这归结于我不明白该使用什么参数zoom translateExtent 虽然我对此很陌生 所以它可能是别的
  • 如何在 C# 中的柱形图顶部添加百分比

    所以 问题来了 我有一个图表 使用以下循环显示多种工作类型的两列 已完成 和 未完成 foreach var workType in model WorkTypes decimal completed 0 decimal uncomplet
  • 如何将 zingchart 实现到 Angular2 中

    我有一个现有的项目 我想在其上实施 zingcharts 我尝试了 3 个不同的教程 主要来自 https blog zingchart com 2016 07 19 zingchart and angular 2 charts back
  • crossfilter - 计算具有属性的所有记录的百分比

    这是我的问题 我正在使用 python Flask 服务器从 mongo db 获取 json 数据 并在其中指定要导入的字段 此数据采用 json 格式 并且仅像这样获取 一旦通过 graphs js 中的 crossfilter 是否可

随机推荐

  • 如何验证域凭据?

    我想针对域控制器验证一组凭据 例如 Username STACKOVERFLOW joel Password splotchy 方法 1 通过模拟查询 Active Directory 很多人建议在 Active Directory 中查询
  • 如何使用 wget 模块从 URL 列表下载 PDF?

    我有一个 Python 脚本 它可以从website与 Selenium 并将它们存储在列表中 现在 我想用以下命令下载它们wget module 这是代码的相关部分 其中脚本完成了从网站获取的部分 URL new links for li
  • 在 Objective c 中在 iPhone 上绘图 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我对编程很陌生 我已经制作了一半的 简单 应用程序 但我想知道如何在屏幕上绘制图片 用户
  • 更改C中二维动态数组的大小

    我创建一个二维动态数组 a int calloc n 1 sizeof int for i 0 i lt n 1 i a i int calloc n sizeof int 然后我需要更改其大小 添加新行 a int realloc a n
  • 如何在 GAE 任务队列中执行需要 OAuth 的操作?

    我有一个简单的 Google App Engine 应用程序 其中包括 update更新 YouTube 播放列表的页面 它看起来像这样 class UpdatePage webapp2 RequestHandler decorator o
  • 如何四舍五入到指定数字的最接近倍数?

    我看过很多关于四舍五入到最接近的数字倍数的问题 但我无法很好地理解他们的方法 无法采用它们四舍五入到 45 或者他们使用其他语言的特定于语言的方法 如果上面的内容还没有多大意义 这里有一个更详细的解释 输入示例 int num1 67 in
  • Spark CSV - 找不到实际参数的适用构造函数/方法

    我在 java Spark 应用程序中的类型数据集的过滤器和映射上使用 lambda 函数时遇到问题 我收到此运行时错误 ERROR CodeGenerator failed to compile org codehaus commons
  • Google Guice 桌面应用程序 - 如何使其工作?

    我在我的网络应用程序中使用 Guice 没有出现任何问题 并且我想在桌面应用程序中使用它 我当然错过了一件事 某种方式告诉我的应用程序如何绑定所有内容并知道什么是什么 在网络应用程序中 我在应用程序类中对此进行了声明 我应该如何在桌面应用程
  • Firebase JWT 身份验证,持续发送令牌?

    您好 我是 Firebase 新手 但非常喜欢它 我读到了这个 https www firebase com docs security custom login html我能够成功创建 JWT 并针对我的 Firebase 帐户进行身份验
  • XAML 中 BackKeyPress 的挂钩命令

    有没有办法将 BackKeyPressed 事件连接到视图 XAML 中的命令 我正在使用 MVVM Light 我有一些可以显示的登录 注册屏幕 如果他们处于登录 注册过程中 这只是显示 隐藏用户控件 我希望能够拦截后退按钮 以便我可以显
  • 离子科尔多瓦相机不工作

    我正在使用以下内容Git 请参阅此处的代码 作为 Phonegap Build 的输入 并已在我的手机上正确安装该应用程序 iOS 该应用程序正确打开 但当我尝试拍照 单击按钮 时没有任何反应 它应该显示相机拍摄的图像 有人可以向我解释什么
  • 如何使用java从同一tomcat中的不同项目获取tomcat项目路径

    我正在使用此代码读取 tomcat 项目 称为 Project1 中的文件 现在我想使用 java util concurrent Tomcat 项目 称为 Project2 在不同的 tomcat 项目 称为 Project2 中获取此路
  • 图像预加载器如何工作?

    我很难理解图像预加载器的工作原理在java脚本中 因此 如果有人能用一个例子来解释他们如何工作 那将会有很大帮助 没有jquery 加载单个图像 浏览器将异步加载图像 这意味着当浏览器被赋予 src图像的 它将开始在后台加载该图像 但也会在
  • Java网络服务器和TIME_WAIT

    我在接收来自我公司生产的设备的信号的网络服务器方面遇到了问题 设备偶尔会重用刚刚使用过的源端口 这会导致 SYN 被服务器丢弃 然后设备会重试 直到旧套接字超出服务器上的 TIME WAIT 状态 然后服务器发送 SYN ACK 服务器是用
  • 如何在 howler.js 上链接声音

    我需要在 howler js 中播放一些声音 但我不知道如何链接它 例如 在字符串 BCG 需要先玩 b ogg 然后玩 c ogg 最后玩 g ogg 如果我只是使用 加载后 sound play b sound play c sound
  • 单击 Javascript 中的按钮显示 android DatePicker

    这是我的要求 我正在将一个 html 文件加载到 WebView 上 我在 html 文件中有一个按钮来选择日期 当我单击该按钮时 我想打开 Android 日期选择器对话框 选择日期后 我想在 html 文件中显示所选日期 谁能指导我 请
  • 如何使用半透明选择器选择屏幕上任意位置的颜色?

    小免责声明 这是我第一次在表单中搞乱图形 因此我对这里的概念不太熟悉 好吧 所以我一直在尝试制作一个应用程序来跟踪光标在整个屏幕中的位置并在其周围绘制一个椭圆 我借用的代码来自this问题 我更改了椭圆的 X 和 Y 位置 以便在光标周围自
  • 数据框的子集,其中一列的倒数第二个值

    我有一个包含很多列的 data frame 其中一列包含样本区域的代码 另一列包含样本的编号 我想从每个样本区域的倒数第二个样本中提取信息子集 我尝试了很多不同的事情 最后这是我最好的猜测 但它仍然不起作用 site lt sample 1
  • python 中的 list.insert() 实际上做了什么?

    我有这样的代码 squares for value in range 1 5 squares insert value 1 value 2 print squares print squares 0 print len squares 输出
  • nvd3 堆积面积图看起来有问题如何修复?

    我的堆积面积图如下所示 我使用的数据具有相同数量的值 就像示例中一样 我使用的数据位于 http pastebin com D07hja76 除了选择器之外 我使用的代码也几乎相似 var colors d3 scale category2