• D3学习之画布制作


    最近大半个月都和d3斗争,学习艰辛(呜呜……)如果觉得作者写的对你有用,可以打赏作者哦!owo

    起言:结合自己的学习之路,我认为要想使用d3画图搞清楚布局很重要,层次分明,就给了你很大的灵活性,写起代码来就不死板,本文就是给你解释svg在网页中的层次,当然,如果你想理解本文,你还需要一些html的基础知识作为铺垫。

    一、【D3图表在html中的结构】
       svg:可伸缩适量图像
       g:一个分组的元素,相当于html中的div元素;图表都放到g元素中

       

      由图标我们可以知道,svg是html网页的一个元素,g元素是svg中的一个块级元素(div)

      上面的层级是这样的:首先我们在html的body元素中声明了一个ID是container的div元素

                之后我们在container这个div元素中添加了一个svg画布

                其次我们在svg中又添加了一个g元素,并进行了移位。

      

    <!DOCTYPE html>
    <!--混合嵌入式代码的集合-->
    <html>
        <head>
            <meta charset="utf-8">
            <title>画布制作</title>
            <style>
                #container{
                    background: #ddd;
                    width: 500px;
                    height: 250px;
                }
            </style>
        </head>
        <body>
            <div id="container"> </div>
            <script src="https://cdn.bootcss.com/d3/3.5.15/d3.js"></script><!--d3在线引用文档-->
            <script>
            var svg=d3.select("#container")/*使用select选择了div(container)元素*/                
            .append("svg")//在container元素中使用append函数添加了一个svg画布
            .attr("width",450)//attr是attribute的缩写,so,可以使用attr给svg添加属性
            .attr("height",200);/*在svg中我把宽高分别设置为了450、200px;
            特意与div(container)元素加以区分,以理解D3图表在html中的结构*/
            d3.select("svg")//此时选中的svg是上面定义的svg及其复加的内容
                .append("g")//添加g元素
                .attr("transform","translate(50,30)");//设置偏移量
            </script>
        </body>
    </html>

    上面的代码是可以运行的,可以下载来亲自试一下效果会更好。

    设置偏移量的时候涉及到了html网页坐标,在这就简单介绍一下; 

    网页页面的原点在左上角,绘图的坐标系是如上图所示的。

    总结:本章介绍了svg元素和g元素在网页页面中的所处的位置,建立了设置svg画布的模型,

      如果你是一个希望利用d3来实现数据可视化的玩家的话,本教程很适合你,记得点赞打赏哦。

    TIPS:如果你是没有视频无法学习的视点怪的化,这有画布制作视频哦。    

      

  • 相关阅读:
    Redis大集群扩容性能优化实践
    INET_ATON(expr)
    无类别域间路由 Classless Inter-Domain Routing CIDR 可变长子网掩码 VLSM Variable Length Subnet Mask
    把[]byte转成string
    不用 H5,闲鱼 Flutter 如何玩转小游戏?
    重度使用Flutter研发模式下的页面性能优化实践
    Flutter 打包与转译 编译 Flutter 即将占领整个 Web 开发
    interface {} is uint, not []uint8
    MySQL查看数据库性能常用命令_Running_Tiger的博客-CSDN博客_mysql 查看数据库 https://blog.csdn.net/qq_41455420/article/details/82802090
    vivo全球商城时光机
  • 原文地址:https://www.cnblogs.com/gti2baby/p/11264971.html
Copyright © 2020-2023  润新知