javascript:d3.js 读取csv , 画折线图

参考 https://blog.youkuaiyun.com/github_37483541/article/details/54934158
d3_csv_line1.html

<!DOCTYPE html>
<html>
<head>
<meta charset='gb2312' />
<script src="/d3/d3.v3.min.js"></script>
<style type="text/css">
 .axis path,
 .axis line {
   fill: none;
   stroke: #1E90FF;
   stroke-width: 1;
   shape-rendering: crispEdges;
 }
 .stroke_width{
   stroke-width: 0.3vmin;
 }
</style>
</head>
<body>
<script>
// 边框的颜色
var border_color = "#1E90FF";
// 用于填充的颜色
var fillcolor = "rgba(204, 238, 255, 0.1)";
var dotcolor = "rgba(255, 255, 255, 0.9)";
// 基金净值数据
var dataset =[];
var dates =[];
var jzset =[];
d3.csv("660001.csv", function(error,data){
   // if(error){ console.log(error);}
   data.forEach(function(d) {
    var cx = d.date;
    var cy = d.jz; 
    dataset.push([cx,cy]);
    dates.push(cx);
    jzset.push(cy);
  })

var w1 = 1000;
var h1 = 500;

var svg = d3.select("body").append('svg')
     .attr("width", w1)
     .attr("height", h1);

var div2 = d3.select("body").append('div')
     .attr("class", "tooltip2")
     .style("opacity", 0);

var margin = {top: 20, right: 25, bottom: 100, left: 60};
   width = w1 - margin.left - margin.right,
   height = h1 - margin.top - margin.bottom;

var new_svg = svg.append("g")
   .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

var format = d3.time.format("%Y-%m-%d");

var x = d3.time.scale()
    .domain([format.parse(dates[0]),
             format.parse(dates[dates.length-1])])
    .range([0, width]);

var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom")
    .ticks(10)
    .tickFormat(d3.time.format("%Y-%m-%d"));

var y = d3.scale.linear()
    .domain([0, d3.max(jzset, function(d){ return d;})*1.1])
    .range([height, 0]);

var yAxis = d3.svg.axis()
    .scale(y)
    .orient("left")
    .ticks(10);

// Define the line
var line = d3.svg.line()
    .x(function(d){return x(format.parse(d[0]))})
    .y(function(d){return y(d[1])})
    .interpolate("linear");

// Add the X Axis
new_svg.append("g")
    .attr("transform", "translate(0," + height + ")")
    .attr("class", "x axis")
    .style("fill",border_color)
    .style("font-size","1em")
    .call(xAxis)
    .selectAll("text")
    .attr("transform", "rotate(-70)")
    .style("text-anchor", "end");

// Add the Y Axis
new_svg.append("g")
    .attr("class", "y axis")
    .style("fill",border_color)
    .style("font-size","1.3em")
    .call(yAxis);

// Add the line
var svg_path1 = new_svg.append('path')
    .attr("d", line(dataset))
    .attr("fill","none")
    .attr("stroke-width","0.16em")
    .attr("stroke",border_color);

// 动画
function do_animation(path) {
    var totalLength = path.node().getTotalLength();
    path.attr("stroke-dasharray", totalLength + " " + totalLength)
        .attr("stroke-dashoffset", totalLength)
        .transition()
        .duration(2000)
        .ease("linear")
        .attr("stroke-dashoffset", 0);
 }
do_animation(svg_path1);
// Grid 网格线
function styleGridlineNodes(axisNodes) {
  axisNodes.selectAll('.domain')
   .attr({ fill: 'none', stroke: 'none'});
  axisNodes.selectAll('.tick line')
   .attr({fill: 'none', 'stroke-width': 1, stroke: 'lightgray'});
}
// 画Grid 横线
var yGridlinesAxis = d3.svg.axis().scale(y).orient("left");
var yGridlineNodes = svg.append('g')
   .attr('transform', 'translate(' + (margin.left + width)+ ',' + margin.top + ')')
   .call(yGridlinesAxis.tickSize(width, 0, 0).tickFormat(""));
styleGridlineNodes(yGridlineNodes);
//  画Grid 竖线
var xGridlinesAxis = d3.svg.axis().scale(x).orient("bottom");
var xGridlineNodes = svg.append('g')
   .attr('transform', 'translate(' + margin.left + ',' +(h1 - margin.bottom) + ')')
   .call(xGridlinesAxis.tickSize(-w1, 0, 0).tickFormat(""));
styleGridlineNodes(xGridlineNodes);});
</script>  
</body>
</html>


参考书:[ D3.js By Example.pdf]
660001.csv
date,jz
2008-08-04,1.0000
... ...
2018-09-19,1.8572
2018-09-20,1.8524
2018-09-21,1.8816
记录总数大于2400行

d3数据可视化----CSV&JSON D3是JavaScript的数据可视化库(http:/) 阅读详情

相关推荐

【D3.js in Action 3 精译_040】4.4 D3 弧形图的绘制方法

本篇为《D3.js in Action》全新第3版4.4节内容,主要介绍了 D3 弧形图(环形图)的绘制技巧。文章通过大量图文并茂的示意图,将弧形图绘制过程中涉及的方方面面的知识逐一进行了介绍,例如极坐标系、形心位置的确定、D3 格式化工具的使用等等。有了前面折线图与面积图的绘制基础,弧形图的实现将变得非常简单。对D3数据可视化感兴趣的朋友强烈建议收藏!

PeacefulWinter的博客 1711

d3.js读取csv和tsv文件

1. CSV格式是什么 CSV使用逗号分隔值,它是以纯文本形式存储表格数据的,每个单元格之间用逗号分隔。 在d3.js中读取csv文件: d3.csv("table.csv", function(error, csvdata){ if(error){ console.log(error) } console.log(csvdata) })...

qq_41700374的博客 3323

大数据可视化入门:手把手教你用D3.js创建动态图表

随着大数据时代的到来,数据可视化已成为数据分析、商业决策、科学研究的核心工具。传统图表库(如ECharts、Highcharts)虽能快速生成标准图表,但在定制化需求(如复杂交互、非标准图形)面前捉襟见肘。D3.js作为基于Web标准(SVG/HTML5/Canvas)的开源可视化库,通过“数据驱动文档”的设计理念,赋予开发者对可视化元素的绝对控制权,是实现高级动态图表的首选工具。D3.js的核心理念与架构设计数据绑定、比例尺、坐标轴等核心组件的原理与使用。

操作系统内核探秘的博客 490

前端d3.js读取excel或csv并导出,以及如何解决读取中文乱码问题,详见注释

前端d3.js读取excel或csv并导出,以及如何解决读取中文乱码问题,详见注释

weixin_42129248的博客 1669

d3test:使用 JavaScript D3 库,我试图构建一个从 CSV 文件中获取数据的功能线图

d3test 这是我第一次尝试使用 D3 库构建功能性折线图。 我的目标是通过 CSV 文件中的数据绘制网站活动的图表。 为了让 CSV 文件工作,我必须实现一个简单的服务器。 在这个例子中,我选择了 Node。 首先,只需进入终端,访问包含文件的目录并键入“node server.js”。 从那里,您将访问本地主机中的端口 8080。 到目前为止,这项工作尚未完成。 我能够使用虚拟数据获得功能性折线图,但到目前为止在确定如何呈现“活动”方面存在问题。 一旦我弄清楚了,希望事情应该到位。

D3.js进阶系列之CSV表格文件的读取详解

D3.js支持从外部读取数据进行图形交互(Loading External Resources),支持的格式有CSV、txt、Html、tsv、xml文本文件和JSON XML数据结构,下面这篇文章主要给大家介绍了D3.js中CSV表格文件读取的相关资料,需要的朋友可以参考下。

读取csv文件并画图

# -*- coding: utf-8 -*- # @Time : 2022/5/5 11:01 # @Author : Sunli import csv import matplotlib.pyplot as plt import pandas as pd plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['font.family'] = 'sans-serif' plt.rcParams['axes.unicode_minus'] =.

weixin_51443598的博客 2243

MT6771 Android13 背光曲线调试与光感数据校准实战

本文详细介绍了MT6771平台在Android 13系统上进行背光曲线调试与光感数据校准的实战经验。针对高亮度环境下背光误调节问题,深入分析了光感数据上报机制,并提供了驱动层配置修改、背光曲线优化及常见问题解决方案,帮助开发者快速定位并解决类似问题。

moon9的博客 287

java 曲线图js_javascript : d3.js 读取csv , 画折线图

参考 https://blog.csdn.net/github_37483541/article/details/54934158d3_csv_line1.html.axis path,.axis line {fill: none;stroke: #1E90FF;stroke-width: 1;shape-rendering: crispEdges;}.stroke_width{stroke-wi...

weixin_39576270的博客 496

告别手动画图!用Cadence SKILL写一个参数化电感PCell(附完整代码)

本文详细介绍了如何使用Cadence SKILL语言开发参数化电感PCell,实现电感版图的自动化生成。通过动态调整线宽、圈数等几何参数,自动创建端口并进行工艺规则校验,大幅提升高频电路设计效率。附完整代码示例,帮助工程师快速掌握PCell开发技巧。

weixin_30684743的博客 368

petalinux i2c的配置

1.硬件平台配置 1.内核配置 cd petalinux-config -c kernel -> Device Drivers -> I2C support -> i2C Hardware Bus support -> Xilinx I2C Controller Pressing 启用CONFIG_I2C_XILINX=y 2.修改用户设备树 cd cd project-spec/meta-user/recipes-bsp/device-tree/files/ i2c2:

u013403954的博客 4313

深入剖析 Chrome 主题扩展:基于 chrome-extensions-samples 的 sample.theme 全解

Chrome 主题(Theme)是扩展体系中一种轻量而特殊的形态——它不含任何 JavaScript 或 HTML,仅凭一份 `manifest.json` 中的 `theme` 字段即可重绘浏览器窗口的配色,覆盖标签栏、工具栏、新标签页、地址栏等核心 UI 区域。本文以 chrome-extensions-samples 仓库中的 [sample.theme](https://link.gitc

gitblog_00775的博客 672

面向高速Serdes的信号完整性优化:从封装 - 板级互连局限到封装内互连技术演进(一)

本文针对高速SerDes互连链路中的关键电磁效应展开研究:1)揭示了封装-主板互连结构在毫米波频段易激发谐振效应,导致53GHz传输陷波和阻抗偏移;2)提出基于本征模分析的谐振抑制方法,通过优化接地过孔排布使带宽突破95GHz;3)系统比较了方形/六边形BGA排布下23种差分对朝向的串扰特性,证实六边形阵列可将功率和串扰降低30%以上;4)论证了100GHz以上带宽需采用封装内互连架构,其较传统方案减少50%阻抗不连续节点。

小孟同学的博客 231

揭秘jupyter_pivottablejs工作原理:Python与PivotTable.js的无缝集成

jupyter_pivottablejs是一款强大的开源工具,它实现了Python与PivotTable.js的无缝集成,为Jupyter/IPython Notebook用户提供了直观的拖放式数据透视表和图表功能。通过简单的Python代码调用,用户就能在Notebook环境中轻松创建交互式数据可视化报表,极大提升了数据分析效率。 ## 核心架构:三层桥梁连接Python与Web前端 ###

gitblog_00155的博客 758

LSTM+Transformer混合模型时间序列预测实战教学

LSTM+Transformer混合模型时间序列预测实战教学 毕业设计

8219

多agv系统调度的MATLAB仿真

从起点出发,到货物点领取货物最后到卸货点,以完成任务总时间最短为目标进行单目标优化,约束条件为,任务不冲突,路径不冲突,要能实现路径规避 ,4-6台agv一起工作。左右货架间隔可通过1个agv,上下货架间隔可通过两个agv,通道为双向行驶通道。一台agv只能带一个货物,优化目标为完成任务总的时间最短,agv的速度是匀速,转弯也不会减速,取货物时间为固定值。上面的图里面货物看为正方形跟agv一样的长度大小,agv试做是跟货物一样大小的正方形agv的速度是每秒1个车身。多台agv一起完成...

FPGA/MATLAB学习教程/源码/项目合作开发 7565

D3 -折线统计图

数据来自csv文件。 绘制效果图: 图片一共由几个部分构成: 横纵两个坐标轴,横轴为月份编号,纵轴是光照时间。 中间主体部分是折线,由svg的Path绘制,其中数据坐标点为svg的circle元素。 右上部分是图例,代表不同颜色代表的城市信息,城市纬度。颜色深浅程度代表纬度的高低。 // 构造比例尺 xScale = d3.scaleLinear() .dom...

No cost too great! 690

halcon3d点云补全方法

属于halcon实例中的内容,后面还接了一部分的匹配

Tianwen_running的博客 1231

告别僵硬折线:用D3.js曲线生成器打造丝滑数据可视化

你是否曾为折线图的生硬转折感到困扰?是否想让数据曲线拥有杂志级的流畅美感?D3.js的曲线生成器(Curve Generator)正是解决这些问题的利器。本文将带你掌握[d3-shape模块](https://gitcode.com/gh_mirrors/d3/d3/blob/66bfe8c6672873293e1f83253e6fbb1508633826/docs/d3-shape.md?utm

gitblog_00081的博客 547

项目模块提取生成jar包上传到nexus供其他项目使用

项目场景: 微服务项目当中的某一个模块其他项目进行复用,资源管理搭建的有私服 nexus。 问题描述: 如果把功能用到其他项目,代码重复量太大,不想些重复的代码。 原因分析: 如果把这个模块单独提取出来进行复用,至于操作数据库的功能,使用远程调用进行数据库操作,这样就能解决相同模块重复编写的工作。量。 解决方案: 首先对模块代码进行封装提取,把一些用到的参数提取出来,以传参的形式来对参数进行传递。这个需要根据具体的情况进行代码提取,提取之后把这个模块的代码进行打包,打包可以借助开发工具进行打包(记得使用 d

lierjun 的专栏 451

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Python+D3.js:从数据处理到交互可视化的竞赛实战指南

在数据科学领域,数据处理与可视化是构建数据洞察力的核心环节。其基本原理在于通过技术工具将原始数据转化为清晰、可交互的视觉表达,从而揭示数据背后的模式与价值。从技术实现看,Python凭借其强大的Pandas和NumPy库,成为数据清洗、转换与分析的“瑞士军刀”,能高效处理缺失值、异常值并进行特征工程。而D3.js作为底层JavaScript库,则提供了数据驱动文档(Data-Driven Documents)的方法论,赋予开发者极高的自由度,能创建复杂、定制化的交互式图表,如力导向图、桑基图等,这对于需要深

384

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JavaScript 图表入门指南(八)

在这一章中,你已经涵盖了几乎所有与条形图实现相关的基本方面,这种类型的图表是在本书的第一部分中使用 jqPlot 库开发的。在这里,您使用了 D3 库。因此,您看到了如何逐个元素地实现一个简单的条形图;然后,您转到堆叠条形图和分组条形图的各种情况,最后看一个最特殊的情况:描绘负值的水平条形图。在下一章中,您将继续使用相同的方法:您将学习如何以类似于使用 jqPlot 时所用的方式实现饼状图,但是这一次您将使用 D3 库。

龙哥盟 1016

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

flask+echarts (动态导入csv文件的数据)

文章目录1.概述 1.概述 效果图: 折线图+柱状图 csv文件数据样式: 每一列代表一种数据

Rover95的博客 6854

JavaScript 图表入门指南(十)

本章解释了如何实现雷达图。这种类型的图表用 jqPlot 是不可行的,所以这一章是有用的,部分是为了突出 D3 库的潜力。它展示了一个示例,帮助您理解如何开发不同于最常见类型的其他图表。下一章也是最后一章通过考虑两个不同的案例来结束这本书。这些案例旨在以简化的方式提出开发人员在处理真实数据时必须面对的典型情况。在第一个例子中,您将看到如何使用 D3 来表示实时生成或获取的数据。您将创建一个不断更新的图表,始终显示当前情况。在第二个例子中,您将使用 D3 库来读取数据库中包含的数据。

龙哥盟 1070

数据可视化与D3.js

数据可视化数据可视化是如何把数据更好的展现出来的一个课题,在大数据出现后,它变得更为重要和迫切。 以前使用excel进行柱状图、饼状图、折线图等是最常用的数据可视化手段之一,而在WEB端,使用流行的extjs、fusioncharts、jfreechart,或者相对不太流行的amchart、highcharts、Bootstrap里的charts、jquery的一些插件等等都可以实现饼状图等的展示

ouyida3的专栏 5454

D3 二维图表的绘制系列(五)横向柱状图

上一篇: 堆叠柱状图 https://blog.csdn.net/zjw_python/article/details/98207916 下一篇: 基础折线图 https://blog.csdn.net/zjw_python/article/details/98201470 代码结构和初始化画布的Chart对象介绍,请先看 https://blog.csdn.net/zjw_python/arti...

zjw_python的博客 3263
上一篇: python : convert markdown to html
下一篇: javascript : 回调函数例子
belldeep
博客等级 码龄20年 1820粉丝 584原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值