pythonshell画图_Python Shell下使用matplotlib
Python Shell下使用matplotlib
Created Monday 10 December 2012
matplotlib默认是延迟绘图直到脚本结束,因为绘图是一个高代价的操作。所以可能不想每次每个属性的改变就更新绘图,只有所有的属性都改变了才更新。
但是,当在python shell上工作时,你通常想图形根据每个命令如改变xlabel()或者线条标识类型时都更新。概念上这是很简单的,但是在实际中确实很复杂,因为matplotlib本质上是图形用户接口应用程序,所以有很多技巧来使matplotlib在python shell上工作的很好。
6.1 救星Ipython
幸运的是,ipython,增强的交互式python shell.有很多技巧和matplotlib提醒,所以你可以用pylab模式启动ipython。
johnh@flag:~> ipython -pylab
Python 2.4.5 (#4, Apr 12 2008, 09:09:16)
IPython 0.9.0 -- An enhanced Interactive Python.
Welcome to pylab, a matplotlib-based Python environment.
For more information, type 'help(pylab)'.
In [1]: x = randn(10000)
In [2]: hist(x, 100)
它会如你所期待的那样做了很多交互式绘图工作。调用figure(),就会弹出视图窗口;调用plot(),你的数据就会显示在视图窗口上。
注意在上面的示例中,我们并没有导入任何matplotlib包,因为这是在pylab模式下,ipython会自动把它们导入进来。ipython会为你打开交互式模式,这会导致pyplot命令触发视图窗口更新,同时提供了matplotlib提醒run命令来有效运行脚本。ipython会关闭交互式模式当运行run命令时,然后在运行完毕使恢复到交互式模式的状态,你又可以继续手动操作视图窗口。
在pylab模式的支持下,ipython己经为嵌入到图形用户接口应用程序做了很多工作,可以在Ipython邮件列表里查看最新状态。
6.2 其它pyton解释器
如果你没有使用ipython,但是还想使用matplotlib/pylab模式在交互式python shell上。如标准python交互式解释器,或者你喜欢的IDE下的解释器,你应该了解什么是matplotlib的后端(什么是后端?)
设置为TkAgg后端就可以使用Tkinter的用户接口工具箱,你也使用matplotlib在任意的python shell,仅仅需要设置你的后端和交互式模式 backend : TkAgg, interactive : True在你的matplotlibrc文件(查看定制matplotlib),然后启动python.
>>> from pylab import *
>>> plot([1, 2, 3])
>>> xlabel('hi mom')
就可以即开即用。注意在批处理模式,如从脚本中创建视图窗口,交互模式可能很慢,因为它会为每个命令重绘。所以在设置这个为默认行为时前,请考虑清楚。
对于其它的用户接口工具箱和对应的matplotlib后端,这种情形很复杂,因为GUI的mainloop会占用整个处理过程。解决方案就是使用单独的线程运行图形界面,这就是ipython很聪明的解决matplotlib支持的大多数包的方式。据报道说,pygtk的后继版本可以很好的支持标准python shell,这是太好了!
6.3 控制交互式更新
pyplot接口的交互式属性控制着是否视图窗口绘图面板在每个pyplot命令都绘制。如果interactive设置为False,视图窗口会在每个绘图命令都更新,但是只会在显示调用draw()命令之后才会绘制。如果interactive设置为True,每个pyplot命令都会重新绘制。
pyplot接口提供了4个有用命令来控制交互式
isinteractive()返回interactive的设置True| False
ion() 打开交互式模式
ioff() 关闭交互式模式
draw() 强制视图窗口重绘
当处理大数据,要绘图的代价很大时,你可能想关闭matplotlib的交互式设置来提供性能:
>>> ioff()
>>> title("now how much would you pay")
>>> xticklabel(fontsize=20, color='green')
>>> draw()
>>> savefig('alldone', dpi=300)
>>> close()
>>> ion()
>>> plot(rand(20), mfc='g', mec='r', ms=40, mew=4, ls='--', lw=3)
pythonshell画图_Python Shell下使用matplotlib相关推荐
- python的方向_Python Shell下方向键显示「^[[C^[[D」修复方法
在Python Shell中出现"「^[[C^[[D」"字符样式的原因是什么,要怎么样才能修复呢?遇到这样问题的python爱好者们可以参考玩蛇网python问答,下面试过的有效方 ...
- matplotlib画图_Python数据可视化工具Matplotlib之画图(四)(饼状图)
概述 在<Python数据可视化工具Matplotlib之画图(三)(柱状图)>中讲述了如何通过Matplotlib画柱状图,本文讲述如何通过Matplotlib画饼状图. matplot ...
- Ubuntu下用matplotlib作图时显示中文
之前在Ubuntu下用matplotlib作图的时候发现无法正常显示中文,查了一番以后发现是Ubuntu系统和matplotlib库没有共同可显示的中文字体库的原因.用此文章的方法可以解决这一问题. ...
- Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib
在 Python shell 中使用 Matplotlib 原文:Using matplotlib in a python shell 译者:飞龙 协议:CC BY-NC-SA 4.0 警告 该页面的 ...
- python bashplotlib_Matplotlib 中文用户指南 7.2 Python shell 中使用 Matplotlib
在 Python shell 中使用 Matplotlib 译者:飞龙 警告 该页面的内容已严重过时. 默认情况下,matplotlib 将绘图延迟到脚本结束,因为绘图可能是开销大的操作,并且你可能不 ...
- 02、体验Spark shell下RDD编程
02.体验Spark shell下RDD编程 1.Spark RDD介绍 RDD是Resilient Distributed Dataset,中文翻译是弹性分布式数据集.该类是Spark是核心类成员之 ...
- TensorFlow下安装matplotlib模块
如果运行TensorFlow时报错"no module named matplotlib ",这是因为未安装matplotlib,打开命令提示符小黑框,输入 pip install ...
- linux有读EC RAM的工具吗,Step to UEFI (179)Shell下 EC Ram 读取工具
最近工作需要在 UEFI Shell 下Check EC Ram 的设定,发现手上只有 Windows 下的读取工具(RW Everything).于是研究了一下如何在Shell 读取 EC Ram ...
- shell下的常用语句
一.别名:alias 自定义别名: 1. alias可用于创建命令的别名,若直接输入该命令且不带任何参数,则列出当前用户使用了别名的命令 2. 使用alias可以自定义别名,并且定义的别名也是支持ta ...
最新文章
- JuJu团队12月28号工作汇报
- .net随笔-vb.net打开外部程序发送键盘信号(2)
- 一件重要的事想要告诉大家
- adb shell 调试 Android 串口
- Django - Cookie和Session
- cdn dashjs_CSS以及JS各种库的在线CDN引用地址
- java 断点续传 开源_java断点续传后台代码
- 计算机网络学习笔记(17. 计算机网络作业一)
- 什么不用 iframe 做微前端
- ajax前台值传到后台
- Codeforces Round #379 (Div. 2) 总结分享
- MySQL保存历史执行语句
- php composer 无法下载,composer给laravel下载扩展包 无法下载的问题
- Android自定义View-View的绘制流程
- Vuex模块化用法 跨模块调用方法
- 什么是人脉和人脉资源
- Java配置文件找不到指定,使用@ContextConfiguration注解后,提示找不到配置文件
- 计算机音乐简单好听,电脑上好听的歌怎么录制,教你2分钟,截取你爱听的声音...
- pinyin4J一款非常好用的汉字和拼音转换的插件
- 想抵御“黑客”和“黑产”,智能 + 安全能不能有高招?