利用svg及JavaScript做柱状图

本文介绍了一种利用SVG和JavaScript制作柱状图的方法。通过将SVG容器逆时针旋转90度来解决水平柱状图的问题,然后通过CSS调整定位,实现了柱状图的布局。内容包括HTML结构、CSS样式以及JavaScript读取JSON数据并生成柱状图的过程。
摘要由CSDN通过智能技术生成

使用SVG最头痛的一点就是其宽度和高度是从左上到右下的方向增加的,这意味如果我们需要一个水平排列的柱状图即柱状图底部处于同一y轴操作起来会很麻烦。网上也有不少方法但是多数也是看的一头雾水,然而突然灵光一闪,如果我将整个承载svg的框架逆时针旋转90度那问题不久都迎刃而解了?试了一下效果挺理想,唯一的缺点就是在设计css的时候需要把头也拧90度。
下面上html代码

<div id="barchart">
<p id="title">Peak And Average Timecost</p>
<div id="bars">
<div id="ave">
<div class="avemarks">

</div>

</div>
<div id="peak">
<div class="peakmarks">

</div>

</div>
<div id="ticks">
<p class="date">Mon</p>
<p class="date">Tue</p>
<p class="date">Wed</p>
<p class="date">Thu</p>
<p class="date">Fri</p>
<p class="date">Sat</p>
<p class="date">Sun</p>
</div>
</div>

</div>

这是一个统计一周内北京某路段交通路程的平均时间的项目,用到了百度地图api以及python的数据处理,这里就不上代码了。总之数据都储存在了一个json文件里面,在JavaScript中使用ajax获取json的数据并进行使用,这个在后面的js代码里面会有
接下来是css代码#barchart{position:absolute;margin:auto;top:50%;left:3%;height:50%;width:50%} #title{font-size:25px;text-align:center;margin-bottom:0} #bars{position:absolute;bottom:0;height:88%;width:100%} #ticks{position:absolute;left:13%;bottom:0} .date{float:left;margin:0px 25px;bottom:0;font-size:30px} svg{display:block;margin-top:36.1%} #ave>svg{background:blue} #peak>svg{background:red} .avemarks{position:absolute;left:20.1%;margin:0 0;height:100%;top:-20%;} #avemarks{-webkit-transform:rotate(90deg);margin:480% 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值