zoukankan      html  css  js  c++  java
  • ofc 统计图的使用

    很久以前用了 ofc ,觉得不错,分享一下

    参数分析:

    title

    显示图表主题(最上方)

    主题名称

    x_legend

    X坐标说明(最下方X轴平行)

    说明信息

    y_legend

    Y坐标说明(最左边Y轴平行)

    说明信息

    x_labels

    设置X轴坐标显示

     

    y_label_size

     

     

    x_label_style

    设置X轴样式

    字体大小

    y_label_style

    设置Y轴样式

    字体大小

    x_ticks

    控制X轴坐标标记显示

    X轴坐标标记长度

    y_ticks

    控制Y轴坐标标记显示

    Y轴坐标标记最小长度

    X_min

    设置X轴坐标最小值

    X轴坐标最小值

    x_max

    设置X轴坐标最大值

    X轴坐标最大值

    y_min

    设置Y轴坐标最小值

    Y轴坐标最小值

    y_max

    设置Y轴坐标最大值

    Y轴坐标最大值

    bg_colour

    设置背景颜色

     

    inner_background

    设置坐标区域内部颜色

    颜色1

    bg_image

    设置背景图片

    图片位置

    bg_image_x

    设置图片横向位置

    [left |center |right]

    bg_bg_image_y

    设置图片纵向位置

    [top |middle |bottom]

    x_axis_colour

    设置X轴颜色

     

    y_axis_colour

    设置Y轴颜色

     

    x_axis_steps

    设置X轴线条间隔

     

    x_axis_3d

    设置X3d效果的高度

     

    x_grid_colour

    设置X轴线条颜色

     

    y_grid_colour

    设置Y轴线条颜色

     

    show_y2

    设置Y轴右边也显示坐标

    [true |false]

    y2_lines

    设置哪个图是根据右边Y坐标的值来显示

    [可以有多个]

    y_format

    格式化Y轴显示(常与#val#等联合使用)

     

    values

    设置值

     

    num_decimals

    格式化小数位数

     

    is_fixed_num_decimals_forced

    是否强制格式化小数

    [true |false]

    is_decimal_separator_comma

    是否使用小数分隔符

    [true: , |false: . ](与千位分隔符相反)

    is_thousand_separator_disabled

    是否使用千位分隔符

    [true |false]

    x_offset

    是否自动补偿以适应图的显示

    [true |false]

     

     

     

    加载js 文件

    <script type="text/javascript" src="public/ofc/js/swfobject.js"></script>
    

      

    在要显示的页面建立一个 框, 来实现显示图表的功能

    <div  id='chart' style="display:none;">{$str}</div>
    
    <div id="my_chart">
    
    <script type="text/javascript">
    
    var data = document.getElementById('chart').innerHTML;
    
    swfobject.embedSWF(   //这是在调用 ofc 库
    
     
    
    "public/ofc/open-flash-chart.swf", "my_chart", "550", "400", //引入文件初始化的swf文件 , 设置大小,绑定位置
    
     
    
    "9.0.0", "expressInstall.swf",  //确定使用的图表swf 文件
    
    {
    
    "data-file":'public/ofc/data.json'
    
    //加载data.json 数据,该数据为json 格式 ,对数据类型要求严格, you控制器写入数据
    
    }
    
    );
    
    </script>
    
    </div>

    在控制器php页面中为ofc 分配数据,完成图表功能

    <?php
    
    public function set(){
    
    #实例化对象
    
    $chart = new systemModel();
    
    $res = $chart->getChart();
    
    #写入json 文件
    
    file_put_contents('Public/ofc/data.json', $res);
    
    #载入模版
    
    $this->smarty->display('admin/set.html');
    
    }
    
    ?>
    
     
    
    在模型中获取(生成)数据 
    
    <?php
    
    #进行三维图的使用
    
    public function getChart(){
    
    #加载 ofc 插件
    
    require_once 'libs/php-ofc-library/open-flash-chart.php';
    
    #设置标题
    
    $title = new title( "商品库存" );
    
    #设置基本样式
    
    $title->set_style( "{font-size: 20px; font-weight: bold; color: #172229; text-align: center;}" );
    
    #定义要显示的数据
    
    $vals = array();
    
    $x_labels = array();
    
     
    
    #获取商品的数据
    
    $goods = new GoodsMangModel();
    
    #获取显示的商品
    
    $goodsMsg = $goods->getgoodsChart();
    
    foreach($goodsMsg as $key=> $val){
    
    #定义数组数据
    
    $x_labels[] = $val['brand_name'];
    
    $vals[] = (int)$val['counts'];
    
    }
    
     
    
     
    
    $d = new hollow_dot();
    
    $d->size(4)->halo_size(0)->colour('#3D5C56');
    
     
    
    #创建折线对象
    
    $line = new line();
    
    #设置折线中点的样式
    
    $line->set_default_dot_style($d);
    
    #设置颜色
    
    $line->set_colour('#3D5C56');
    
    #设置值
    
    $line->set_values( $vals );
    
    $line->attach_to_right_y_axis();
    
     
    
    #创建一个 ofc 对象
    
    $chart = new open_flash_chart();
    
    #设置改图表的标题
    
    $chart->set_title( $title );
    
    #为图表追加折线图
    
    $chart->add_element( $line );
    
     
    
    $arr = $vals ;
    
    #创建柱状图对象
    
    $bar1 = new bar_filled( '#BF3B69', '#577261' );
    
    #对柱状图进行值设置
    
    $bar1->set_values($vals);
    
    $bar1->attach_to_right_y_axis();
    
    #柱状图进行追加
    
    $chart->add_element( $bar1 );
    
     
    
    $y = new y_axis_right();
    
    #设置y坐标
    
    $y->set_range( 0, 200, 1 );
    
    $y->set_stroke( 3 );
    
    $y->set_colour( '#3D5C56' );
    
    $y->set_tick_length( 16 );
    
    #设置坐标的 步长
    
    $y->set_steps( 20 );
    
     
    
    $chart->set_y_axis_right( $y );
    
     
    
     
    
    $x = new x_axis();
    
    $x->set_labels_from_array($x_labels);
    
    $chart->set_x_axis( $x );
    
    #返回图表的数据信息 应该是json 格式
    
    return $chart->toPrettyString();
    
    }

    代码写的不足之处,还望批评指正!

  • 相关阅读:
    trie树(板子)
    A. Many Equal Substrings(思维)
    D2 Equalizing by Division (hard version) &&D1 Equalizing by Division (easy version) (easy version)(Codeforces Round #582 (Div. 3))
    B. Square Filling ( Educational Codeforces Round 71 (Rated for Div. 2))
    A. Creating a Character(Educational Codeforces Round 72 (Rated for Div. 2) )
    字符画 (CSU 2163 )
    The Nth Item (The 2019 Asia Nanchang First Round Online Programming Contest)
    Magic Master (The 2019 Asia Nanchang First Round Online Programming Contest)
    Fire-Fighting Hero (The 2019 Asia Nanchang First Round Online Programming Contest)
    Pangu Separates Heaven and Earth(签到题)(The 2019 Asia Nanchang First Round Online Programming Contest)
  • 原文地址:https://www.cnblogs.com/zeopean/p/ofc.html
Copyright © 2011-2022 走看看