html显示柱形图,07完整的柱形图.html
.axis path,
.axis line {
fill: none;
stroke: black;
shape-rendering: crispEdges;
}
.axis text {
font-family: sans-serif;
font-size: 11px;
}
const width = 400; // 画布的宽度
const height = 400; // 画布的高度
const dataset = [10, 20, 30, 40, 33, 24, 12, 5]; // bar的数据
const padding = {left: 30, right: 30, top: 20, bottom: 20}; // 画布周围留空白的间距
/*
* 第一步:添加SVG画布
* */
const body = d3.select('body');
body.append('svg')
.attr('width', width)
.attr('height', height)
.style('border', '1px solid #ccc');
const svg = body.select('svg');
/*
* 第二步:创建比例尺
* */
// x轴的比例尺,采用的是序数比例尺
const xScale = d3.scaleBand()
// d3.range 设置输入范围从0~dataset.length,相间1(d3.range默认从0开始,间隔为1)
.domain(d3.range(dataset.length))
.rangeRound([0, width - padding.left - padding.right]);
// y轴比例尺,采用的是线性比例尺
const yScale = d3.scaleLinear()
.domain([0, d3.max(dataset)])
// 注意了:屏幕Y轴方向是由上向下,所以为了实现y轴数据从下向上递增,比例尺需要反方向
// y轴值域范围是svg的高度减去上下空白区域的长度
.range([height - padding.top - padding.bottom, 0]);
/*
* 第三步:定义坐标
* */
// X轴坐标
const xAxis = d3.axisBottom()
.scale(xScale) // 设置坐标轴比例尺
// Y轴坐标
const yAxis = d3.axisLeft()
.scale(yScale)
/*
* 第四步:将坐标放到
* */
// 设置x轴
svg.append('g')
.attr('class', 'axis')
.attr('transform', `translate(${padding.left},${height - padding.bottom})`)
.call(xAxis)
// 设置Y轴
svg.append('g')
.attr('class', 'axis')
.attr('transform', `translate(${padding.left},${padding.top})`)
.call(yAxis)
/*
* 绘制柱状图并放到svg中
* */
//矩形之间的空白
const rectPadding = 4;
svg.selectAll('rect')
.data(dataset)
.enter()
.append('rect')
.attr('transform', `translate(${padding.left},${padding.top})`)
.attr('y', (data) => {
return yScale(data)
})
.attr('x', (data, i) => {
return xScale(i) + rectPadding / 2
})
.attr('width', (data, i) => {
return xScale.bandwidth() - rectPadding
})
.attr('height', (data, i) => {
return height - padding.top - padding.bottom - yScale(data)
})
.attr('fill', '#409EFF');
/*
* 添加文字
* */
body.select('svg')
.selectAll('.text')
.data(dataset)
.enter()
.append('text')
.attr('class', '.text')
.attr('transform', `translate(${padding.left},${padding.top})`)
.attr('x', (data, i) => {
return xScale(i) + rectPadding / 2
})
.attr('y', (data, i) => {
return yScale(data)
})
.attr('dx', (data, i) => {
return (xScale.bandwidth() - rectPadding) / 2
})
.attr("dy", function (d) {
return 20;
})
.text((data) => {
return data
})
.style('fill', '#fff')
.attr('text-anchor', 'middle') // 将文字居中(文字中心点就是x轴坐标)
一键复制
编辑
Web IDE
原始数据
按行查看
历史
html显示柱形图,07完整的柱形图.html相关推荐
- plt.savefig保存图片一片空白或者显示内容不完整、错乱
原本打算用matplotlib中的savefig实现在某张图片上依据坐标将一系列的彩色点投影到相应位置,然后将完成投影后的图保存下来,预期的效果如下图: 1.图片空白.显示内容不完整 最开始的 ...
- 计算机窗口显示不完整,win10软件窗口显示不全不完整怎么办
在win10系统中,使用的用户多了难免会出现各种各样的问题,例如有的用户的win10系统中打开软件时总会出现显示不全不完整的情况,那么win10软件窗口显示不全不完整怎么办呢?下面就来告诉大家win1 ...
- excel柱状图堆叠图显示总和_Excel 的堆积柱形图上,怎样才能显示堆积图的总和?...
我发现很多同学在学习 Excel 的过程中,还不习惯用专业术语来描述问题,这就会导致提的问题,专业人士听不懂:专业人士的问答,他又听不懂. 比如,今天的标题,什么是"堆积柱形图"? ...
- python画柱形图-python绘制双柱形图代码实例
图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身 ...
- python画柱形图-Python数据分析:柱形图的绘制方法
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 没有安装PyEcharts的,先安装PyEcharts: data = p ...
- python 柱形图_python绘制双柱形图代码实例
图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身 ...
- Matplotlib绘制堆积柱形图和簇状柱形图:学生成绩的简单可视化
堆积柱形图 首先,导入包. import numpy as np import pandas as pd import matplotlib.pyplot as plt 导入数据并查看. data= ...
- Echarts 3D柱形图和3D堆叠柱形图实现
[Echarts]3D双柱形图.堆叠柱形图实现 实现目标展示 1.双柱图实现步骤 内容分析 代码实现 2.堆叠图实现步骤 内容分析 代码实现 实现目标展示 1.双柱图实现步骤 内容分析 此处采用的双柱 ...
- mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...
基本的查询语句 select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名 select 字段名 as 别名 from 表名称; ...
最新文章
- 【Android】Android取消EditText自动获取焦点
- ios5 ARC机制介绍和使用
- MapReduce-Shuffle机制运行解析
- python可以写接口吗_用python写api接口吗
- C语言实验大纲2010答案,C语言试验大纲(2010年修订).doc
- 正定矩阵(用于SVM的Mercer定理)
- FreeBSD Chinese HOWTO
- 判断只有符号数字 java_java编程 判断输入的字符,数字,及其他符号的个数
- css 幻灯片_如何使用HTML,CSS和JavaScript创建幻灯片
- 详尽的msf——meterpreter——渗透测试教程
- 大数据流处理框架介绍
- 在html语言中读取txt文件中的内容,Javascript写入txt和读取txt文件示例详解
- 【必收藏】PS常用快捷键大全
- 你真的理解什么是“财富自由”吗?
- 一个好用的hibernate泛型dao
- Python 多变量赋值实现“交换”
- mySQL提取姓氏_MySQL 提取姓名大写首字母缩写
- mysql5.7 优化 三
- python代码的层次结构图_Python:父子层次结构的组合
- 蓝桥杯算法很美笔记—排序实现题
热门文章
- 半入耳式蓝牙耳机推荐,盘点2022高品质半入耳蓝牙耳机
- 冰点还原精灵使用方法
- go每日新闻(2022-06-14)——一文告诉你Go 1.19都有哪些新特性
- Pygame做个游戏(2)人物及运动操作(包括长按)
- 2.单元格的跨列居中和自动换行
- 解决win10右下角输入法出现一个‘拼’字图标
- 奇特的“对自杀说不”许可证
- Mybatis学习-(案例)员工管理系统(二)——Maven仓库
- strict-origin-when-cross-origin 403 异常解决
- Java中的集合浅析