绘制svg
<div id = "container"></div>
----------
var svg_w = 500, // svg的宽度
svg_h = 400, // svg的高度
g_left = 50, // 坐标系离svg的左边距
g_top = 50, // 坐标系离svg的上边距
g_w = svg_w - 2 * g_left, // 坐标系的宽度
g_h = svg_h - 2 * g_top; // 坐标系的高度
// 绘制svg
var svg = d3.select('#container').append('svg')
.style({
width: svg_w,
height: svg_h
});
绘制横坐标
// 横坐标
var scale_x = d3.scale.linear()
.domain([0, 10]) // 输入范围
.range([0, g_w]); // 输出范围
var axis_x = d3.svg.axis().scale(scale_x);
svg.append('g')
.call(axis_x)
.classed('axis_x', true)
.style({
strokeWidth: '1',
stroke: '#aaa',
fill: 'none',
transform: 'translate('+g_left+'px, '+(g_h+g_top)+'px)'
});
绘制纵坐标
// 纵坐标
var scale_y = d3.scale.linear()
.domain([0, 10])
.range([g_h, 0]); // 由于浏览器的y轴和数学上的y轴相反,所有输出范围是[num, 0]
var axis_y = d3.svg.axis().scale(scale_y).orient('left');
svg.append('g')
.call(axis_y)
.classed('axis_y', true)
.style({
strokeWidth: '1',
stroke: '#aaa',
fill: 'none',
transform: 'translate('+g_left+'px, '+g_top+'px)'
});
var axis_x = d3.svg.axis().scale(scale_x)
.orient('top') // 刻度与坐标轴方向
.ticks(5) // 分成5等分,有时d3会根据可用空间和它自己的计算多画几个或者少画几个
.tickSubdivide(4) // 每个大刻度之间再画4个等分刻度
.tickPadding(10) // 刻度值与坐标轴之间的距离
.tickFormat(function(v) { // 格式化刻度值
return v + '天';
});
d3.select('g.axis_y').append('text')
.text('价格(元)')
.style({
'transform': 'rotate(-90deg)',
'text-anchor': 'end' // 设置文本的排列属性start\middle\end
})
.attr('dy', '1em')
// 竖直方向的线条
d3.selectAll('g.axis_x g.tick')
.append('line')
.attr({
x1: 0,
y1: 0,
x2: 0,
y2: -g_h
})
// 水平方向的线条
d3.selectAll('g.axis_y g.tick')
.append('line')
.attr({
x1: 0,
y1: 0,
x2: g_w,
y2: 0
})
原网址: 访问
创建于: 2023-01-13 16:23:39
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
个人博客-leapMie CSDN博客 - 舍其小伙伴 稀土掘金 Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 流星007
最新评论