07完整的柱形图

.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相关推荐

  1. plt.savefig保存图片一片空白或者显示内容不完整、错乱

      原本打算用matplotlib中的savefig实现在某张图片上依据坐标将一系列的彩色点投影到相应位置,然后将完成投影后的图保存下来,预期的效果如下图: 1.图片空白.显示内容不完整   最开始的 ...

  2. 计算机窗口显示不完整,win10软件窗口显示不全不完整怎么办

    在win10系统中,使用的用户多了难免会出现各种各样的问题,例如有的用户的win10系统中打开软件时总会出现显示不全不完整的情况,那么win10软件窗口显示不全不完整怎么办呢?下面就来告诉大家win1 ...

  3. excel柱状图堆叠图显示总和_Excel 的堆积柱形图上,怎样才能显示堆积图的总和?...

    我发现很多同学在学习 Excel 的过程中,还不习惯用专业术语来描述问题,这就会导致提的问题,专业人士听不懂:专业人士的问答,他又听不懂. 比如,今天的标题,什么是"堆积柱形图"? ...

  4. python画柱形图-python绘制双柱形图代码实例

    图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身 ...

  5. python画柱形图-Python数据分析:柱形图的绘制方法

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 没有安装PyEcharts的,先安装PyEcharts: data = p ...

  6. python 柱形图_python绘制双柱形图代码实例

    图表是比干巴巴的表格更直观的表达,简洁.有力.工作中经常遇到的场景是,有一些数值需要定时的监控,比如服务器的连接数.活跃用户数.点击某个按钮的人数,并且通过邮件或者网页展示出来.当我们想关注比数值本身 ...

  7. Matplotlib绘制堆积柱形图和簇状柱形图:学生成绩的简单可视化

    堆积柱形图 首先,导入包. import numpy as np import pandas as pd import matplotlib.pyplot as plt 导入数据并查看. data= ...

  8. Echarts 3D柱形图和3D堆叠柱形图实现

    [Echarts]3D双柱形图.堆叠柱形图实现 实现目标展示 1.双柱图实现步骤 内容分析 代码实现 2.堆叠图实现步骤 内容分析 代码实现 实现目标展示 1.双柱图实现步骤 内容分析 此处采用的双柱 ...

  9. mysql查询前5000条记录分页显示_数据库 完整的查询语句,查询顺序及分页显示功能...

    基本的查询语句​ select (* | 字段名 | 四则运算 | 聚合函数) from 表名称; 取别名 当字段名显示较长时 可以添加别名​ select 字段名 as 别名 from 表名称;​ ...

最新文章

  1. 【Android】Android取消EditText自动获取焦点
  2. ios5 ARC机制介绍和使用
  3. MapReduce-Shuffle机制运行解析
  4. python可以写接口吗_用python写api接口吗
  5. C语言实验大纲2010答案,C语言试验大纲(2010年修订).doc
  6. 正定矩阵(用于SVM的Mercer定理)
  7. FreeBSD Chinese HOWTO
  8. 判断只有符号数字 java_java编程 判断输入的字符,数字,及其他符号的个数
  9. css 幻灯片_如何使用HTML,CSS和JavaScript创建幻灯片
  10. 详尽的msf——meterpreter——渗透测试教程
  11. 大数据流处理框架介绍
  12. 在html语言中读取txt文件中的内容,Javascript写入txt和读取txt文件示例详解
  13. 【必收藏】PS常用快捷键大全
  14. 你真的理解什么是“财富自由”吗?
  15. 一个好用的hibernate泛型dao
  16. Python 多变量赋值实现“交换”
  17. mySQL提取姓氏_MySQL 提取姓名大写首字母缩写
  18. mysql5.7 优化 三
  19. python代码的层次结构图_Python:父子层次结构的组合
  20. 蓝桥杯算法很美笔记—排序实现题

热门文章

  1. 半入耳式蓝牙耳机推荐,盘点2022高品质半入耳蓝牙耳机
  2. 冰点还原精灵使用方法
  3. go每日新闻(2022-06-14)——一文告诉你Go 1.19都有哪些新特性
  4. Pygame做个游戏(2)人物及运动操作(包括长按)
  5. 2.单元格的跨列居中和自动换行
  6. 解决win10右下角输入法出现一个‘拼’字图标
  7. 奇特的“对自杀说不”许可证
  8. Mybatis学习-(案例)员工管理系统(二)——Maven仓库
  9. strict-origin-when-cross-origin 403 异常解决
  10. Java中的集合浅析