windows下Python图形化工具Matplotlib安装
2016-04-22 16:25
197 查看
windows下Python图形化工具Matplotlib安装
本人最近打算用科学运算生成的数据来进行可视化展示,无奈java的图形化接口太稀缺,Matlab太过庞大,不想多折腾。刚好最近用Python在做数值运算,看了一些网上说的工具,最后决定采用和Matlab“走的最近”的Matplotlib进行图形展示,自己摸索了半天也成功了,顺便给大家分享一下自己的经验。Matplotlib属于Python的一类科学计算包的扩展,就类似java中第三方jar包。为了保持版本的稳定(听说Python3.X在后续的安装上会有兼容性问题),这里采用Python2.7.11。小伙伴们可以在官网下载,下载地址如下:
https://www.python.org/downloads/release/python-2711/ ,进入后选择windows版本即可,位数根据自己的系统而定,我这里是win10 64位的,所以下载Windows x86-64 MSI installer。安装方法很简单,选择安装路径后下一步即可,完成后记得在系统中配置环境变量(如:path=%path%;D:\python\python-2.7.11)。
接下来进入主题,先给出Matplotlib官网链接:http://matplotlib.org/users/installing.html
很重要的一点,版本号尽量和Python相对应。从官网的说明来看,安装Matplotlib还需要安装numpy, setuptools, python-dateutil, pytz, pyparsing, and cycler这些外置包。我当时一看,也被它唬住了,但尝试后发现其实安装方法大多相同。
下面咱们先安装numpy。官网上给出的版本几乎都是解压版的,我也曾尝试通过pip命令进行安装,但无奈底层各种不兼容,一编译就出错,多方尝试后也没有很好的解决办法。后来看过大神的帖子后建议windows下还是通过.exe安装来的稳妥,测试了许久,找到一个Python2.7能用的版本,链接如下:
http://download.csdn.net/download/z1137730824/8384347(numpy 64位)
http://download.csdn.net/detail/u010156024/9302649(numpy 32位)
下载后为numpy-MKL-1.8.0.win-amd64-py2.7.exe,双击可进入安装界面,点击下一步发现安装是灰色的,找不到相应的Python。这里很奇怪,Python安装时并没有往注册表里进行注册,所以numpy搜索不到,因此我们需要手动注册,这里提供一个简单的办法,将下面的程序复制另存为:
register.py
# script to register Python 2.0 or later for use with win32all # and other extensions that require Python registry settings # # written by Joakim Loew for Secret Labs AB / PythonWare # # source: # http://www.pythonware.com/products/works/articles/regpy20.htm # # modified by Valentine Gogichashvili as described in http://www.mail-archive.com/distutils-sig@python.org/msg10512.html import sys from _winreg import * # tweak as necessary version = sys.version[:3] installpath = sys.prefix regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version) installkey = "InstallPath" pythonkey = "PythonPath" pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % ( installpath, installpath, installpath ) def RegisterPy(): try: reg = OpenKey(HKEY_CURRENT_USER, regpath) except EnvironmentError as e: try: reg = CreateKey(HKEY_CURRENT_USER, regpath) SetValue(reg, installkey, REG_SZ, installpath) SetValue(reg, pythonkey, REG_SZ, pythonpath) CloseKey(reg) except: print "*** Unable to register!" return print "--- Python", version, "is now registered!" return if (QueryValue(reg, installkey) == installpath and QueryValue(reg, pythonkey) == pythonpath): CloseKey(reg) print "=== Python", version, "is already registered!" return CloseKey(reg) print "*** Unable to register!" print "*** You probably have another Python installation!" if __name__ == "__main__": RegisterPy()
然后在cmd中执行python register.py,便可以看到注册成功的提示。接下来我们再安装,便能够看到安装按钮可以点击了,我们安装它。安装好后可以在shell命令中通过import numpy来检测是否安装成功。
以上步骤完成后我们开始安装matplotlib,我这里选择是1.5.1,Python2.7的windows64位版,如下:
可以看到下载完后后缀是.whl,那么我们怎么进行安装呢,网上有多种方法,命令行下是pip install XX.whl就行,但有时候pip也不是那么好使,可能会因为系统和计算机的原因出现各种编译错误;这里再大家介绍一种方法,把matplotlib-1.5.1-cp27-none-win_amd64.whl后缀给改为.zip,即matplotlib-1.5.1-cp27-none-win_amd64.zip格式,然后解压到Python目录下的Lib文件夹下的site-packages目录,即可完成安装(其实whl属于编译好的文件,咱们可以提取到python依赖包中直接引用)。现在用import导入做测试,发现并不会报错。
接下来我们在官网中下载一个matplotlib示例,
surface3d_demo.py
from mpl_toolkits.mplot3d import Axes3D from matplotlib import cm from matplotlib.ticker import LinearLocator, FormatStrFormatter import matplotlib.pyplot as plt import numpy as np fig = plt.figure() ax = fig.gca(projection='3d') X = np.arange(-5, 5, 0.25) Y = np.arange(-5, 5, 0.25) X, Y = np.meshgrid(X, Y) R = np.sqrt(X**2 + Y**2) Z = np.sin(R) surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False) ax.set_zlim(-1.01, 1.01) ax.zaxis.set_major_locator(LinearLocator(10)) ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f')) fig.colorbar(surf, shrink=0.5, aspect=5) plt.show()
然后用python命令执行它,发现它会提示缺少很多依赖包,具体缺什么错误中会有提示。现在我们把再把上面的依赖包下载后装入python中,给出一个python外部依赖包的下载地址:
http://www.lfd.uci.edu/~gohlke/pythonlibs/
按照所缺的包依次在上面的链接中进行搜索,如pyparsing,按ctrl+f搜索到相应的下载链接,发现后缀也是.whl的,于是按照同样的方法更改后缀后解压到site-packages目录下,再运行surface3d_demo.py,发现图形成功生成,效果如下
欢迎大家批评指正!
相关文章推荐
- python中的setdefaultencoding函数使用
- python中的编码解码问题
- Python 发邮件服务
- python @property理解
- Python-汉诺塔问题
- python修饰器各种实用方法
- 使用Python进行聚类分析
- python 中time模块各种日期格式相互转化实例
- Windows 7 安装64位 Python 2.7.3 开发环境
- 练习-python集合set
- python模块:doctest,unitest模块
- SIFT图像特征提取 python3.4 + opencv3.1.0代码
- Python中的random模块
- 01.Win10 系统下python3.4连接mysql数据库
- Python爬虫入门笔记:一个简单的爬虫架构
- Python Matplotlib库入门指南
- python摘要
- python邮件发送
- python中requests使用代理proxies
- Windos 下python2.7安装 pymssql 解决方案