技术标签: D3.js 二维图表系列 d3
上一篇: 径向树图
下一篇: 热力地图
代码结构和初始化画布的Chart对象介绍,请先看 这里
本图完整的源码地址: 这里
name,math,chinese,english,chemistry
小明,30,60,57,49
小红,50,95,65,65
小张,66,70,40,88
导入数据
d3.csv('./data.csv', function(d){
return {
name: d.name,
math: +d.math,
chinese: +d.chinese,
english: +d.english,
chemistry: +d.chemistry
};
}).then(function(data){
....
一些样式参数配置
const config = {
lineColor: chart._colors(0),
margins: {
top: 80, left: 50, bottom: 50, right: 50},
textColor: 'black',
title: '平行坐标系折线图',
hoverColor: 'red',
padding: 120,
animateDuration: 1000
}
平行坐标系需要对每一个维度都生成一个度量尺度
/* ----------------------------尺度转换------------------------ */
const fields = ['math', 'chinese', 'english', 'chemistry'];
chart.scales = d3.zip(...(data.map((item) => d3.permute(item, fields)))).map((subject) => {
return d3.scaleLinear()
.domain([0, Math.floor(d3.max(subject)/10 + 1)*10])
.range([chart.getBodyHeight()*0.9, 0]);
});
渲染坐标轴,注意各轴的横向偏移距离
/* ----------------------------渲染坐标轴------------------------ */
chart.renderAxis = function(){
chart.scales.forEach((scale, index) => {
chart.body()
.append('g')
.attr('class', 'axis axis-' + index)
.attr('transform', 'translate(' + (index+0.5) * config.padding + ',0)' )
.call(d3.axisLeft(scale).ticks(7));
});
}
渲染连线,运用d3.line
快速画线
/* ----------------------------渲染线条------------------------ */
chart.renderLines = function(){
const lines = chart.body().append('g')
.attr('class', 'lines')
.selectAll('.line')
.data(data);
const linesEnter = lines.enter()
.append('g')
.attr('class', 'line');
linesEnter.append('path')
.attr('stroke', (d,i) => chart._colors(i % 10))
.attr('stroke-width', 2)
.attr('fill', 'none')
.attr('d', (d) => d3.line()(generatePoints(d)))
linesEnter.append('text')
.attr('dx', '1em')
.attr('transform', (d,i) => 'translate(' + 3.5 * config.padding + ',' + chart.scales[chart.scales.length-1](d['chemistry'])+')' )
.text((d) => d.name)
lines.exit()
.remove()
function generatePoints(d) {
return d3.permute(d, ['math', 'chinese', 'english', 'chemistry']).map((item, index) => {
return [
(index+0.5) * config.padding,
chart.scales[index](item)
];
});
}
}
我喜欢的不是冒险。我知道自己喜欢什么。那是生活。——圣埃克絮佩里摘自《人的大地》EmEditor 是啥?它是一款和UltraEdit、EditPlus类似的文本编辑器。“KAO!有没有搞错,一个文本编辑器有啥好说的?!”“我已经用惯了UltraEditor和EditPlus,不想再换了,再见!”我想你肯定会这么说。以前我也用了很久的EditPlus,不过最近却转向EmEdit..._小贴士:在“replace”对话框中的“find”和“replace with”文本框的右侧各有一个
深度残差收缩网络(Deep Residual Shrinkage Networks for Fault Diagnosis )_深度残差收缩网络
新建一个.NET Core项目,我使用的IDE是VS2019依次创建三个Core类库:第一个命名api.Model,第二个api.Common,第三个api.Bo解释一下这个三类库的作用:第一个Model,主要存放一些数据库连接字符串,ORM实体类等第二个Common,主要存放一些公共类,文件上传,md5加密文件等第三个Bo,处理一些业务逻辑的事情,比如将用户信息存放...
转自:http://commandwindows.com/runline.htm The "Run" line in the Start menu can be used to speed up access to a whole variety of functions. Some examples of the shortcuts that are available are discussed here.Introduction to the Run LineThe Run command l_runline
quartus 中工程建好后怎么修改其工程名_quartus怎么改工程名
近期,GPT-4在网络上引起了轩然大波,b站上也出现了许许多多关于GPT-4的解说视频,其中有一个解说视频受到了网友的热烈追捧,目前已填充有2万多的弹幕,这也引起了本人的极大兴趣,因此对该视频的弹幕进行了爬取,并记录于mysql数据库中,以进行数据分析、数据挖掘、弹幕数量预测和情绪分类等等。话不多说,正文开始。_python爬取b站弹幕并进行数据分析
I built my own kernel and tried it out, but when I rebooted my system it paniced right after giving me this error message: VFS cannot open root device or unknown block, please append a correct root=_please append a correct root
️ 编号:ym246️ 品牌:WordPress️ 语言:PHP️ 大小:2MB️ 类型:DUX7.5大前端️ 支持:pc+wap???? 欢迎免费领取(注明编号) ???? 源码介绍DUX7.5大前端主题,WordPress大前端主题,适合小而美的文章站。值得一提的更新:重新设计主列表展示样式不得不说,之前的列表略显单薄,且图标太多会影响视觉重心,这次的主列表重新设计希望能够得到多数人的喜爱。一直以来,主列表的设计决定了一个主题的逼格,因为几乎全部的列表页都会用到,这次的_wordpress大前端主题
python脚本实现xlsx文件解析环境配置:1.系统环境:Windows 7 64bit 2.编译环境:Python3.4.3 3.依赖库: os sys xlrd re 4.其他工具:none 5.前置条件:待处理的xlsx文件脚本由来最近的工作是做测试,而有一项任务呢,就是分析每天机器人巡检时采集的数据,包括各种传感器,CO2、O2、噪声等等,每天的数据也有上千条,通过站控的导出数据
1、关系型数据库(只是一个保存数据的容器) 关系模型是把世界看作是由实体和联系组成的,而关系型数据库是将数据库表作为实体,以数据库的主键和外键的关联关系描述的一种数据库结构 表之间的关联关系:①一对一关系:一条主表记录对应一条从表记录,同时一条从表记录也对应一条主表记录 ②一对多关系:一条主表记录对应多条_数据库小结
常用的MySQL命令大全第 1 一、连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1、例1:连接到本机上的MYSQL。首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: m_数据库表 custom
function test(){var test=document.getElementById("test");test.select();//选中框中的所有文本;}