1、搭建matplotlib环境
构建matplotlib运行环境,需要满足相关软件环境。
numpy库提供大数据集的数据的数据结构和数学方法。诸如元组、列表或字典等python的默认数据结构同样可以很好的支持数据的插入、删除和谅解。NumPy的数据结构支持矢量操作,使用简便,同时具有很高的执行效率。矢量操作在实现时充分考虑了大数据的需要,基于C语言的方式也保证了执行效率。
基于Numpy的scipy库,是Python的标准科学计算和数学计算工具包,包含了大量的专用函数和算法。大部分函数和算法源自著名的Netlib软件仓库(http://www.netlib.org),实际上是使用C语言和Fortran实现的。
1、安装NumPy
安装Python-NumPy软件包
apt-get install python-numpy
安装完成后,使用命令
python -c 'import numpy; printf numpy_.__version__'
检查版本。
2、安装所需库
libpng1.2:PNG文件处理
freetype6:处理True type字体
sudo apt-get install libfreetype6
sudo apt-get install libpng12-dev
3、安装matplotlib
apt-get install python-matplotlib4
如果你想进行机器学习方向的学习,下面这些库也是必不可少的。
4、安装scipy
Scipy是一个高级的科学计算库,它和Numpy联系很密切,Scipy一般都是操控Numpy数组来进行科学计算,所以可以说是基于Numpy之上的开发工具。
apt-get installl python-scipy5
5、安装数据分析工具pandas
apt-get install python-pandas 6
6、sklearn是必不可少的,sklearn中包含了大量的优质的数据集,在你学习机器学习的过程中,你可以通过使用这些数据集实现出不同的模型。安装指令
apt-get install python-sklearn
2、安装virtualenv和virtualenvwrapper
如果同时工作在多个项目上,或是需要在不同项目间频繁切换,将所有软件都安装在操作系统上并不是一个好主意。当需要在不同系统上运行软件时,这种方式会带来问题。virtualenv它可以创建一个独立的python环境,这样就可以让我们很容易的在不同的运行环境之间切换。同时,如果需要切换到另外的机器或者需要在产品服务器上部署软件时,用virtualenv可以很容易的重新构建相同的软件包。
1、安装pip
pip是安装并管理Python软件包的工具,可以用它来代替easy install工具。pip安装命令如下:
apt-get install python-setuptools easy_install pip
什么时候该用pip,什么时候该用apt-get呢?情况是这样的,如果你需要最新版本的python依赖包,你可以直接使用apt-get,在项目突然需要使用旧版本的依赖包时,你就可以使用virtualenv和pip来使完美得再安装上一个旧版本的依赖包;
2、安装virtualenv和virtualenvwrapper
easy_install virtualenv
easy_install virtualenvwrapper
安装完成后,需要在系统中添加virtualenvwrapper的环境变量,在~/.bashrc文件中的最后添加路径如下
source "/usr/local/bin/virtualenvwrapper.sh"
export WORKON_HOME="/opt/virtual_env/"
3、关于virtualenv使用
(1) 首先创建一个虚拟环境
virtualenv python_env
系统在预设虚拟环境时,默认的会依赖系统环境中的包,如果不想依赖西戎的包,可以加上 --no-site-packages
来建立虚拟环境即
virtualenv --no-site-packages python_env
(2)启动虚拟环境
进入到虚拟环境的目录下,使用命令
source bin/active
可以看到,在最前面多了一个虚拟环境的名称,说明虚拟环境已经开始运行了。
(3)在虚拟环境安装新的Python 套件
安装套件的命令为
pip install [套件名称]
如果想要避免pip
在没有进入虚拟环境时被使用,可以在~/.bashrc
加上:
export PIP_REQUIRE_VIRTUALENV=true
要求pip
一定要在虚拟环境中执行。
也可以用下面的设定,让系统的pip
自动使用启动中的虚拟环境。
export PIP_RESPECT_VIRTUALENV=true
避免意外将套件安装至系统环境。
(4)退出虚拟环境
在命令中输入
deactivate
即可推出虚拟环境。
4、关于virtualenvwrapper的使用
Virtualenvwrapper 是一个Virtualenv 的扩展,可使虚拟环境的管理变得更容易。
详细来说,Virtualenvwrapper 提供下述功能:
- 将所有的虚拟环境整合在一个目录下。
- 管理(新增、移除、复制)所有的虚拟环境。
- 可以使用一个命令切换虚拟环境。
- Tab 补全虚拟环境的名字。
- 每个操作都提供允许使用者自订的hooks。
- 可撰写容易分享的extension plugin 系统。
使用如下:
使用命令mkvirtualenv可以进行一次性装配
mkvirtualenv [-i package] [-r requirements_file] [virtualenv options] ENVNAME
当然也可以一步步来,首先创建虚拟环境
然后可以看到在~/.virtualenvs的文件下创建了一个虚拟环境,我们可以如virtualenv一样去文件加下激活,但是这样就比较麻烦,virtualenvwrapper提供了一个非常有用的激活命令workon来进行激活,我们可以直接使用命令进行激活。
workon 要激活的环境名
除此之外,virtualenvwrapper还提供了一些其他的命令方便我们使用:
(1)虚拟环境列出指令
lsvirtualenv [-b] [-l] [-h]
其中-b
是简短模式;-l
是详细模式(预设);-h
是印出help资讯。
(2)复制虚拟环境指令
cpvirtualenv ENVNAME TARGETENVNAME
(3)移除虚拟环境指令
rmvirtualenv ENVNAME
还有更多指令请查看查考手册。
3、安装图像处理工具PIL
python图像库(PIL)为python提供了强大的图像处理能力,PIL支持的文件格式相当广泛,其特性有快速数据访问、点运算、滤波、图像缩放、旋转、任意仿射转换等。
使用命令
apt-get install python-PIL
即可安装。
有一个专门针对PIL编写的在线手册,可以查看链接学习。
4、安装requests模块
我们需要的大部分数据都可以同通过HTTP或类似协议得到,因此,我们需要一些工具来实现数据访问,虽然python提供的urllib2提供了访问远程资源的能力,但是该模块完成基础任务的工作量较大。Request封装了HTTP1.1的内容,并提供了新的API,仅在需要实现非默认访问的情况下才需要暴露相关内容。安装用
apt-get install python-requests
下面为一个requtests的使用小例子(运行环境python3.4):
import requests
r = requests.get('http://github.com/timeline.json')
print(r.content)
运行结果如下:
本例中,是向github站的URI发送HTTP GET请求,以JSON格式返回了GITHub网站的活动时间表。在成功读取HTTP响应后,对象r包含了HTTP响应内容以及其他属性信息(HTTP状态码、cookie、HTTP头元数据,甚至包括当前响应所对应的请求信息。
5、在代码中配置matplotlib参数
在matplotlib的配置文件.rc文件中,已经为大部分属性提供了默认值,这里讲解下如何在代码中配置matplot参数。
在代码执行过程中,有两种方法运行参数:使用字典(rcParams)或调用matplotlib.rc()命令进行更改。第一种方式,可以通过rcParams访问修改所有已经加载的配置项,第二种方式中,可以通过向matplotlib.rc()传入属性的关键字元元组来修改配置项。
如果要修改重置动态修改后的配置参数,可以调用matplotlib.rcdefaults()将配置重置为标准设置。
下面通过两段代码延时之前介绍的功能
使用matplotlib.rcParams的例子
import matplotlib as mpl
mpl.rcParams['lines.linewidth'] = 2
mpl.rcParams['lines.color'] = 'y'
使用matplotlib.rc()函数的例子。
import matplotlib as mpl
mpl.rc('lines',linewidth=2,color='r')
上面两个例子具有相同的作用,第二个例子中,我们设定后续的所有线条宽度为2个点,第一个例子中的最后一条语句表面光,语句之后的所有线条的衍射均为红色,除非本地覆盖他。下面给出一个实际应用的例子。
import matplotlib.pyplot as plt
import numpy as np t=np.arange(0.0,1.0,0.01)
s=np.sin(2*np.pi*t) plt.rcParams['lines.color'] = 'r'
plt.plot(t,s)
c=np.cos(2*np.pi*t)
plt.rcParams['lines.linewidth'] = '3'
plt.plot(t,c)
plt.show()
使用python test.py运行上面的test.py程序,运行结果如下:
6、为项目设置matplotlib参数
如果不想每次使用matplot时都在代码开始部分进行分配,就需要为不同的项目设定不同的默认配置项。假设一个项目对于matplot的特性参数总会设置相同的值,就没有必要每次编写新的绘图代码时都进行相同的配置。取而代之的,应该是在代码之外,使用一个永久的文件设定matplotlib参数默认值。
通过matplotlibrc来配置文件。配置文件在三个不同位置,而他们的位置决定了他们的应用范围,三个位置的说明如下:
当前目录:即代码运行的目录。在当前目录下,可以为目录所包含的当前项目定制matplotlib配置项。配置文件的名称为matplotlibrc。
用户级.matplotlib/matplotlibrc文件:通常在用户的$HOME目录下。可以用matplotlib.get_configdir()命令来找到当前用户的配置文件目录。
安装级配置文件:通常在python的site-packages目录下。这是系统级配置,不过在每次重新安装matplotlib后,覆盖文件会被覆盖。因此如果希望保持持久有效的配置,最好选择在用户级配置文件中进行设置。目前对本配置文件的最佳应用方式,是将其作为默认配置模板。如果在用户级配置文件已经比较混乱,或者需要为新项目做全新配置时,可以基于该配置文件进行配置。
在shell中运行以下命令,即可打印出配置文件目录的位置:
python -c 'import matplotlib as mpl; print mpl.get_configdir()'
配置文件包括以下配置项:
axes:设置坐标轴边界和表面的颜色、坐标刻度大小和网格的显示。
backend:设置目标输出TKAgg和GTKAgg。
figure:控制dpi、边界颜色、图形大小和子区设置。
font:字体集,字体大小和样式设置。
grid:设置网格颜色和线型。
legend:设置图例和其中文本的显示。
line:设置线条(颜色、线性、宽度等)和标记。
patch:填充2D空间的图形对象,如多边形和圆。控制线宽、颜色和抗锯齿设置等。
savefig:可以对保存的图形进行单独设置。
text:设置字体颜色、文本解析等。
verbose:设置matplotlib在执行期间信息输出,如silent、helpful、debug和debug-annoying。
xticks和yticks:为x、y轴的主刻度和次刻度设置颜色、大小、方向以及标签大小。
参考资料
MATPLOTLIB
关于在Ubuntu下安装配置numpy,scipy,matplotlibm,pandas 以及sklearn
Python: Ubuntu 安装numpy,scipy,matplotlib
Python 的虛擬環境及多版本開發利器─Virtualenv 與 Pythonbrew
http://effbot.org/
ubuntu下搭建一个数据化处理的开发环境的更多相关文章
-
linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区
linux-mint下搭建android,angularjs,rails,html5开发环境 - qijie29896的个人空间 - 开源中国社区 http://blog.csdn.net/orzor ...
-
搭建一个完整的Java开发环境
搭建一个完整的Java开发环境 作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,ecl ...
-
OSX 下搭建Asp.Net vNext的开发环境
开年第一天,按照惯例逛逛各个网站,看看7天有没有什么错过的东西,偶见VS 2015的CPT 6发布了,据说更新ASP.NET,就顺便去官方网站看了看,也忘记在什么地方偶然发现一个叫OmniSharp的 ...
-
linux-mint下搭建android,angularjs,rails,html5开发环境
目录[-] 必备软件: 环境配置: [open-jdk-6.0] [android-sdk] [ant] [github] [node.js] [rvm](ruby-1.9.3 rails-4.0.0 ...
-
PyQt5系列教程(一)Mac OS X下搭建Python3.5.1+PyQt5开发环境
软硬件环境 OS X EI Capitan Python 3.5.1 PyQt 5.5.1 PyCharm 5.0.1 前言 Qt是一个开源的跨平台的GUI框架,为很多计算机语言提供了应用程序开发接口 ...
-
Mac下搭建基于PlatformIO的嵌入式开发环境(STM32开发)
PlatformIO简介 PlatformIO是开源的物联网开发生态系统.提供跨平台的代码构建器.集成开发环境(IDE),兼容 Arduino,ESP8266和mbed等 支持在Windows.Lin ...
-
菜鸟从零学编程(七)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
-
菜鸟学Java(十二)——搭建一个完整的Java开发环境
作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课.环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse ...
-
ubuntu 下搭建一个python3的虚拟环境(用于django配合postgresql数据库开发)
#安装python pip (在物理环境中安装) sudo apt-get install python-pip sudo apt-get install python3-pipsud ...
随机推荐
-
现在, Delphi 的多线程已经非常易用了!
先看一个非多线程的例子, 代码执行时不能进行其它操作(譬如拖动窗体): {自定义方法: 在窗体上绘制...} procedure MyMethod; var i: Integer; begin ...
-
Android四大组件小结
Android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
-
Hibernate学习笔记四 查询
HQL语法 1.基本语法 String hql = " from com.yyb.domain.Customer ";//完整写法 String hql2 = " fro ...
-
pydev 下Django 1.7 undefined variables from import问题的解决
参考:http://*.com/questions/24951029/pydev-django-undefined-variables-from-import 参考上面的帖子认 ...
-
在GNU/Linux下制作Windows 10安装U盘
今年春节回家期间,我需要将家里的一台安装了Debian Stretch的ZaReason笔记本电脑更换为Windows 10系统,好让爸妈从老台式机上的XP系统升级到新的平台上来.回家前,小仙女已在微 ...
-
BZOJ.4184.shallot(线段树分治 线性基)
BZOJ 裸的线段树分治+线性基,就是跑的巨慢_(:з」∠)_ . 不知道他们都写的什么=-= //41652kb 11920ms #include <map> #include < ...
-
Vue : Expected the Promise rejection reason to be an Error
在vue项目中添加ESLint,new 一个 Promise 一直显示错误 :Expected the Promise rejection reason to be an Error 正常来说new ...
-
java-pdf转word
注:原文来至 < java-pdf转word > 一: java Pdf 文字 转 Word 废话不说,直接上图 很简单的用法:1.new个PDFBox对象2.调用pdfToDoc() ...
-
Porsche Piwis Tester II Diagnostic Tool -Next Generation of PIWIS Tester KTS520
Porsche Piwis Tester II is the latest inspect equipment of Porsche Company. This is the latest profe ...
-
BigDecimal的用法详解(保留两位小数,四舍五入,数字格式化,科学计数法转数字,数字里的逗号处理)
转自:https://blog.csdn.net/ochangwen/article/details/51531866 一.简介 Java在java.math包中提供的API类BigDecimal,用 ...