zoukankan      html  css  js  c++  java
  • SVG折线图

    效果:

     1 <!DOCTYPE html >
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
     5 <style type="text/css" media="screen">
     6 path:hover {
     7     fill: yellow;
     8 }
     9 .svg{border:0px solid #0CF;}
    10 </style>
    11 <title>SVG折线图</title>
    12 </head>
    13 <body>
    14 <?php
    15 $y_max = 12000; //Y坐标最大值
    16 ?>
    17 <svg width="960" height="200" class="svg">
    18 <g class="axis" zIndex="2">
    19     <!--绘制X坐标-->
    20     <path fill="none" d="M 60 160 L 960 160" stroke="#6a7791" stroke-width="1" zIndex="7" visibility="visible"/>
    21     <?php 
    22     // 绘制x坐标
    23     $delta = (960 - 60) / 24;
    24     for($i = 0; $i < 24; $i++) {
    25         $x = 80 + $delta * $i;
    26     ?>
    27     <path fill="none" d="M <?=$x?> 160 L <?=$x?> 170" stroke="#C0D0E0" stroke-width="1" opacity="1"/>
    28     <?php }?>
    29     
    30     <?php 
    31     // 绘制x坐标文字
    32     $delta = (960 - 60) / 12;
    33     for($i = 0; $i < 12; $i++) {
    34         $x = 80 + $delta * $i;
    35         $text = $i*2;
    36         if($text < 10) {
    37             $text = '0' . $text;
    38         }
    39     ?>
    40     <text x="<?=$x?>" y="180" text-anchor="middle" style="color:#606060;cursor:default;font-size:11px;fill:#606060;" opacity="1"><?=$text?>:00</text>
    41     <?php }?>
    42     
    43     <!--绘制Y坐标-->
    44     <?php 
    45     // 绘制x坐标文字
    46     $delta = (160 - 10) / 3;
    47     for($i = 0; $i < 3; $i++) {
    48         $y = 10 + $delta * $i;
    49         $text = $y_max / 3 * (3 - $i);
    50         $text = ceil($text);
    51     ?>
    52     <path fill="none" d="M 60 <?=$y?> L 960 <?=$y?>" stroke="#eae9e9" stroke-width="1" zIndex="1" opacity="1"/>
    53         <text x="20" y="<?=$y+5?>" width="100" text-anchor="right" style="color:#606060;cursor:default;font-size:11px;fill:#606060;" opacity="1"><?=$text?></text>
    54     <?php }?>
    55 </g>
    56 
    57 <!--绘制折线-->
    58 <?php
    59 $data = array();
    60 for($i = 0; $i < 24; $i++) {
    61     $data[] = rand(0, $y_max);
    62 }
    63 ?>
    64 
    65 <?php
    66 $delta_x = (960 - 60) / 24; //刻度间隔
    67 $y_start = 0;
    68 $line_point = '';
    69 $line_point_tip = '';
    70 foreach($data as $k=>$v) {
    71     $x = 80 + $delta_x * ($k);
    72     $y = (150 * $v) / $y_max;
    73     $y = 150 - $y;
    74     if('0' == $k) {
    75         $y_start = "M 80 $y";
    76     } else {
    77         $line_point .= " L $x $y";
    78     }
    79     $line_point_tip .= ' ' . $v;
    80 }
    81 ?>
    82 <g class="polyline" zIndex="3">
    83     <!--<?=$line_point_tip?>-->
    84     <path onmouseover="this.style.fill='none'" fill="none" d="<?=$y_start?> <?=$line_point?> C" stroke="#f15755" stroke-width="2"/>
    85 </g>
    86 </svg>
    87 </body>
    88 </html>
  • 相关阅读:
    jQuery自学笔记(四):jQuery DOM节点操作
    jQuery自学笔记(三):jQuery动画效果
    jQuery自学笔记(二):jQuery选择器
    面试记录与复盘总结
    wh-研发功能复盘
    st项目-要素标记功能的实现以及经验总结
    ST项目经验总结2
    S台项目记录-1
    统计模型项目开发经验汇总
    开发规范
  • 原文地址:https://www.cnblogs.com/dzut/p/4249021.html
Copyright © 2011-2022 走看看