V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
hao1032
V2EX  ›  Python

python 有简单的图表库吗?

  •  
  •   hao1032 · 2014-07-28 17:38:10 +08:00 · 11151 次点击
    这是一个创建于 3769 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我看网上都推荐Matplotlib ,直觉这是一个很大很复杂的库。
    我的需求很简单,只要能显示成这样就行了,大家有简单的库介绍吗??
    第 1 条附言  ·  2014-07-28 23:19:20 +08:00
    抱歉忘了说,是本地脚本显示。和网页无关。
    第 2 条附言  ·  2014-07-29 10:49:45 +08:00
    看来要使用matplotlib,不只matplotlib这么简单。
    现在已经又安装了numpy, pyparsing, dateutil, multiarray
    其中numpy 9.3M比matplotlib还大。
    我的电脑是64位的win7,最后提示这,有人知道什么情况吗???
    Traceback (most recent call last):
    File "D:\works\JetBrains\python\simplePref\test.py", line 5, in <module>
    import matplotlib.pyplot as plt; plt.rcdefaults()
    File "C:\Python27\lib\site-packages\matplotlib\__init__.py", line 156, in <module>
    from matplotlib.cbook import is_string_like
    File "C:\Python27\lib\site-packages\matplotlib\cbook.py", line 28, in <module>
    import numpy as np
    File "C:\Python27\lib\site-packages\numpy\__init__.py", line 153, in <module>
    from . import add_newdocs
    File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 13, in <module>
    from numpy.lib import add_newdoc
    File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 8, in <module>
    from .type_check import *
    File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 11, in <module>
    import numpy.core.numeric as _nx
    File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 6, in <module>
    from . import multiarray
    ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。
    25 条回复    2016-10-18 17:30:48 +08:00
    cdwyd
        1
    cdwyd  
       2014-07-28 18:06:59 +08:00
    这个不是js干的活吗?
    izoabr
        2
    izoabr  
       2014-07-28 18:11:47 +08:00
    你是非得在后台生成图片再输出么?还是也能接受js来做?最好是用js做,方便得多
    solupro
        3
    solupro  
       2014-07-28 18:20:59 +08:00   ❤️ 1
    交给js做吧,百度就有个 https://github.com/ecomfe/echarts
    reeco
        4
    reeco  
       2014-07-28 18:41:49 +08:00
    Echarts、highchart
    izoabr
        5
    izoabr  
       2014-07-28 18:45:02 +08:00
    @solupro 好东西
    imn1
        6
    imn1  
       2014-07-28 19:18:39 +08:00
    json,似乎是输出到web,楼上介绍的都不错了,另外的选择可以是SVG
    如果只是单机输出,Matplotlib库虽大,但结合pandas输出其实也是很简单,你这个需求在pandas调用matplotlib也就两三行代码而已
    d0o0g
        7
    d0o0g  
       2014-07-28 20:33:50 +08:00
    gnuplot
    susu
        8
    susu  
       2014-07-28 21:36:09 +08:00
    chart.js 挺好的用的。
    http://www.bootcss.com/p/chart.js/
    iptux
        9
    iptux  
       2014-07-28 21:42:53 +08:00
    maxima 的 plot2d() 和 plot3d() 也很好用
    yangzh
        10
    yangzh  
       2014-07-28 22:14:56 +08:00
    这个 pandas 正解
    Niris
        11
    Niris  
       2014-07-28 23:04:39 +08:00
    用 R 画过图的应该都知道 ggplot2 吧?
    网上有 python 移植 https://github.com/yhat/ggplot
    我自己没用过,看了下依赖,好像不太符合要求……
    ruoyu0088
        12
    ruoyu0088  
       2014-07-29 06:03:31 +08:00
    matplotlib是很大很复杂,但是用起来不复杂,你那个图4,5行代码就可以画出来了。
    frankzeng
        13
    frankzeng  
       2014-07-29 08:51:26 +08:00
    chartdirector,这个强大,后台生成的,楼上一干人说用js画图,数据多的时候不好使。
    dcoder
        14
    dcoder  
       2014-07-29 09:34:20 +08:00
    @solupro 百度这个很赞啊,有现成的 angular directive 吗,找了下,没找到.

    看样子是不依赖任何外部 lib 的?
    https://github.com/ecomfe/echarts/blob/master/bower.json
    solupro
        15
    solupro  
       2014-07-29 09:49:48 +08:00
    @dcoder 不好意思,其实我只是知道有这东西,自己也还没实际运用过
    hao1032
        16
    hao1032  
    OP
       2014-07-29 10:51:15 +08:00
    @all,请看附加的消息。 太累了。
    hao1032
        17
    hao1032  
    OP
       2014-07-29 10:52:12 +08:00
    测试代码

    import matplotlib.pyplot as plt
    plt.plot([1,2,3,4])
    plt.ylabel('some numbers')
    plt.show()
    clino
        18
    clino  
       2014-07-29 11:08:53 +08:00
    建议楼主去 https://pypi.python.org/pypi 搜索一下 chart 这样去找找
    likuku
        19
    likuku  
       2014-07-29 11:25:47 +08:00
    gnuplot 足够。

    python 根据数据生成 gnuplot 的临时配置文件,然后调用 gnuplot 计算文本数据源,生成图片。

    gnuplot 参考:

    gnuplot 让您的数据可视化 : http://www.ibm.com/developerworks/cn/linux/l-gnuplot/

    台湾中央研究院计算中心
    ASPAC 计划 的 gnuplot 中文文档:
    Gnuplot User Guide : http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/
    Hualin
        20
    Hualin  
       2014-07-29 14:52:14 +08:00
    Matplotlib 很复杂,但用其中的命令风格模块 pyplot 就够用了。基本上就在命令行敲敲命令就能出图。很简单,官网有个 tutorial 以及几个简练的 demo

    Matplotlib 推荐安装 numpy (定义 array 或者 matrix), scipy (用不上 备着),以及 ipython(interactive Python cmd)。

    iPython 集成了 numpy 和 matplotlib.pyplot 用的时候不用导入那些模块。matplotlib 的 pyplot 教程也是基于此。

    windows 下 直接安装以上几个 python 包的 binary 就 ok,环境变量设置一下,没啥折腾的。
    Hualin
        21
    Hualin  
       2014-07-29 14:58:30 +08:00
    windows 64 bit,可以选择直接安装 64 bit python,但注意要在 unofficial site 上安装已经预先编译的其他包的 64bit 版,去这个网站 http://www.lfd.uci.edu/~gohlke/pythonlibs/。
    你报错可能是底层用的库不对。像 numpy 这种包 不同于 pypi 上其他小的包,需要底层的数学库来支持,不折腾的话就之间安装 binary,get things done 就行
    y26jin
        22
    y26jin  
       2014-07-30 03:12:00 +08:00
    试试plotly
    https://plot.ly/
    d0o0g
        23
    d0o0g  
       2014-08-11 22:21:38 +08:00
    我都建议楼主用gnuplot了
    示例:
    http://baqiao.tk/blog/2013/08/15/webserver/
    hao1032
        24
    hao1032  
    OP
       2014-08-12 10:27:30 +08:00
    @all,已经不再折腾,解决方案如下。

    在脚本里面开启了python自带的http服务器,然后将数据放到了网页上,由highcharts展示。
    hao1032
        25
    hao1032  
    OP
       2016-10-18 17:30:48 +08:00
    近期发现了 pycha 这个包,是一个比较简单的 chart 库,有需要的的可以试试。 http://pythonhosted.org/pycha/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:36 · PVG 11:36 · LAX 19:36 · JFK 22:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.