V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wudikua
V2EX  ›  程序员

画个 pv 图,有每分钟的状态,画一天的,好像用那种 js 的图表工具都会很卡,一般都怎么画的?php 的图表库可以画么。

  •  
  •   wudikua · 2014-03-31 07:55:46 +08:00 via Android · 4826 次点击
    这是一个创建于 3889 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2014-07-11 22:58:45 +08:00
    dong3580
        1
    dong3580  
       2014-03-31 09:37:16 +08:00 via iPhone
    图图?折线图,柱状图,各种图?
    不是有好多图标js插件么,表示才做完一个图图项目.
    可以ajax然后从数据查看出数据,拼成json,传到前台然后,然后调用图图插件,你懂滴
    yakczh
        2
    yakczh  
       2014-03-31 09:54:22 +08:00   ❤️ 1
    tomheng
        3
    tomheng  
       2014-03-31 10:51:19 +08:00
    highchart 吧,不要“好像很卡”,自己试试看喽
    leopku
        4
    leopku  
       2014-03-31 13:18:43 +08:00
    不介意使用非js图表不?

    rrdtools多大数据都不卡,通用标准
    dndx
        5
    dndx  
       2014-03-31 13:22:10 +08:00
    如果能翻墙的话:

    https://developers.google.com/chart/
    wudikua
        6
    wudikua  
    OP
       2014-03-31 13:41:42 +08:00
    @dong3580 就是折线图,一天就是3600个点,还是挺卡的,多选几天就崩溃了。
    wudikua
        7
    wudikua  
    OP
       2014-03-31 13:49:42 +08:00
    @leopku good这个是我需要的
    dong3580
        8
    dong3580  
       2014-03-31 15:51:42 +08:00 via iPhone
    @wudikua
    我前不久写的,各种图,当然也有楼主这个需求的图.
    卡的原因找出来发现是存储过程耗时太多了,图还是蛮复杂的,
    后来我在存储过程中将sql换成动态语句,存储过程开始用了大约2K多行,换成动态之后实际为1302行.
    现在打开基本能在2S内绘制完所有的图,还能接受.
    个人觉得瓶颈在sql语句上.js插件实际上不会卡.
    F12看看post传回各个阶段耗时多久,瓶颈在哪儿.
    PS:推荐三个插件给你jqwidgets,Highcharts,flot 如果是大数据,个人倾向第一个.
    passluo
        9
    passluo  
       2014-03-31 15:53:28 +08:00
    Highcharts +1
    jyhmijack
        10
    jyhmijack  
       2014-03-31 16:12:31 +08:00
    Highcharts +1
    wudikua
        11
    wudikua  
    OP
       2014-03-31 19:35:36 +08:00
    @dong3580 不错,比4楼那个简单,4楼那个有点麻烦,还得写perl脚本,折腾半天放弃了 =。=
    lhj2100
        12
    lhj2100  
       2014-04-01 06:21:32 +08:00
    一天3600个点,每个点都挤到一起!根本看不嘛!
    zoosucker
        13
    zoosucker  
       2014-04-01 11:09:02 +08:00
    chartjs http://www.chartjs.org/ 不过不支持低端浏览器
    tywtyw2002
        14
    tywtyw2002  
       2014-04-01 16:35:59 +08:00 via iPhone
    @dong3580 我监控是用python写的
    sql只做archive,按天周月去存,用blob存cpickle。

    后来就改用blob存gzip压缩过的json。

    这样数据表会小很多。查询速度也快。

    只是每天晚上需要压缩一下数据。
    dong3580
        15
    dong3580  
       2014-04-01 17:32:07 +08:00 via iPhone
    @tywtyw2002
    我们是企业项目,自然不能用py.
    我做出来第一版,打开页面需要24s左右,如果中途刷新,直接卡死.
    考虑到性能页面肯定要能够尽可能迅速显示出来,后来写了个超大的存储过程,传回json,然后所有的字符串处理都用js完成,这样还算行,配点动态的效果,例如努力加载中,loading个温馨提示.2s我能接受,
    当然,折线图控件也找了不少,Highcharts大数据不佳,参数难以把握;flot数据多了真的很难看,并且不能很好的展示坐标点.你懂得的,客户要求都很fuck,都会要全能型的页面显示,发现效果好并且数据每一个都能够完整显示的只有jqwidgets了.
    至于数据表占用大小不在我考虑范围,个人觉得不是问题,问题是你怎么查出来数据的,这一部分该是决定性能的地方.
    tywtyw2002
        16
    tywtyw2002  
       2014-04-02 04:19:08 +08:00 via Android
    @dong3580 企业太难搞,我的就是自己用,做的越简洁越好,搞个数据库也麻烦,最后就sqlite。
    leopku
        17
    leopku  
       2014-07-11 22:58:45 +08:00
    @wudikua php官方就rrdtools开发包,用python的开发包读写更爽一些
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5636 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:08 · PVG 14:08 · LAX 22:08 · JFK 01:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.