python画图程序实验报告_Python绘图简明教程
前⾔
本⽂纯科普向。
主要介绍⼀下Python上最好⽤的2D图形绘制库matplotlib的安装以及⼀些基础操作。
选择Python是因为其强⼤的第三⽅库和优秀便捷的语法,并且能⽅便地对数据进⾏后续处理和分析。
或许对各位的实验报告有⼀定帮助...嘻嘻。
⼀份简短的安装说明
1. 安装Python3
进⼊/downloads/
下载安装包(注意区分32位和64位)
以Windows为例,安装时记住安装⽬录
建议勾选Add to path
安装完成后close
2. 安装matplotlib
Mac OS 打开终端,Windows 打开命令提⽰符,输⼊如下命令:
$pip3 install matplotlib
等候安装完成
3. 安装NumPy
⽅法同上
$pip3 install numpy
简介:NumPy是⼀个为了在Python上进⾏快速多维矩阵运算⽽编写的库(Python作为⼀门动态语⾔其本⾝效率低下)NumPy可以创建多维数组并且实现像MATLAB⼀样⽅便的矩阵拼接和运算。
4. 开发环境
本⼈强推Sublime Text。
习惯Visual Studio的同学可以使⽤VS Code。
Pycharm也是不错的选择。
此外还有著名的Anaconda,集成了许多强⼤的科学分析⼯具。
下⾯是⼀些配置⽅⾯的⽂章
VS code:
ST3:
Anaconda:
如果不需要配置开发环境,也可以选择使⽤
Python⾃带的IDLE编辑
在File中新建⽂件并保存,后缀为.py
编辑⼀段python代码,保存后Run或者直接F5
如果没有bug就能成功运⾏了
正⽂
对于完全没学过Python的同学,建议先了解⼀下基本的语法和数据类型。
这⾥有⼀篇教程
python新手代码画图当然,最为可靠的教程⾃然是Python的官⽅⽂档
顺便附上matplotlib的⽂档
以及NumPy的官⽅教程
接下来我们实现⼀些基本的操作
⾸先要导⼊刚安装好的两个模块:matplotlib和NumPy,为了⽅便,我们可以使⽤plt和np作为别名
以下的代码绘制了⼀幅正余弦函数的图像
Python弱类型,因此不需要提前声明变量类型。
第⼀⾏中np.linspace()为NumPy的⼀个成员函数,接受起点,终点和元素个数三个未知参数,返回⼀个由等差数列构成的⼀维数组,将其赋值给变量x,作为坐标点的x轴坐标。
第⼆⾏我们通过成员函数sin,cos获得了相应的y轴坐标,他们的变量类型仍然是NumPy的⼀维数组。
然后通过函数np.plot()我们就可以得到⼀幅不带标注的简单图形。不要忘记⽤plt.show()显⽰图像。
当然也可以通过修改plot()的参数来定制图像
常见参数如color,linewidth,linestyle
⽰例:
plt.plot(x,y,color='red',linewidth=2.5,linestyle='--')
参数太多不⼀⼀列举
绘制多条曲线时默认在⼀张图上显⽰,若要⽤多张图像分别显⽰,可以⽤subplot()函数。
标签和坐标轴的设置
先附上实例:
1. plt.xlabel()和plt.ylabel()函数接受⼀个字符串参数,给x,y轴加上标签,可以⽤来显⽰单位。
2. plt.title()函数同样接受⼀个字符串给图像加上标题
3. plt.xlim()和plt.ylim()都接受两个参数,⽤来设定图像的边界。如果不调⽤此函数则图像边界为⾃适应。
4. icks()和icks()来给坐标轴上的某个点设置标签。ticks函数接受两个长度相同的列表作为参数。第⼀个列表记录了要修改的点在坐标轴上的位置,第⼆个列表记录的是要替换的内容组成的字符串。举个例⼦,icks([1, 2, 3], ['a', 'b', 'c'])将x轴上坐标为1,2,3的格点分别换上了标签‘a’,‘b’,‘c’。
5. plot()函数内有⼀个名为label的关键字参数,接受⼀个字符串,可以在绘制⼀条曲线时显⽰它的标签。和plt.legend()配套使⽤。legend()函数有⼀个名为loc的参数,能够指定标签显⽰的位置。
6. 值得注意的是,matplotlib⽀持基本的LaTeX格式。成员函数在接受字符串参数时可以⽤如下格式:
其中,字符串前以r开头说明使⽤LaTeX格式,字符串内$与LaTeX中⾏间公式的环境相同,可以由此来编辑数学公式。
⼀些其他图形的绘制
引⽤⼀下官⽅⽰例,不做深⼊讲解
其中分别演⽰了基本的柱状图、散点图和折线图的绘制。
后记
再次强调,本⽂纯科普向,仅仅演⽰了⼀些最基本的函数使⽤⽅法。Python是⼀门⾮常有魅⼒的编程语⾔,其内容也远远不⽌于此,只希望能借此抛砖引⽟,对⼤家的学习有所帮助。
最后引⽤⼀下Python之禅。
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
祝⼤家学习愉快。_(:⁍」∠)_
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论