大数据-Matplotlib基础绘图
- 格式:pptx
- 大小:746.87 KB
- 文档页数:44
Python利⽤matplotlib模块数据可视化绘制3D图⽬录前⾔1matplotlib绘制3D图形2绘制3D画⾯图2.1源码2.2效果图3绘制散点图3.1源码3.2效果图4绘制多边形4.1源码4.2效果图5三个⽅向有等⾼线的3D图5.1源码5.2效果图6三维柱状图6.1源码6.2效果图7补充图7.1源码7.2效果图总结前⾔matplotlib实际上是⼀套⾯向对象的绘图库,它所绘制的图表中的每个绘图元素,例如线条Line2D、⽂字Text、刻度等在内存中都有⼀个对象与之对应。
为了⽅便快速绘图matplotlib通过pyplot模块提供了⼀套和MATLAB类似的绘图API,将众多绘图对象所构成的复杂结构隐藏在这套API内部。
我们只需要调⽤pyplot模块所提供的函数就可以实现快速绘图以及设置图表的各种细节。
pyplot模块虽然⽤法简单,但不适合在较⼤的应⽤程序中使⽤。
为了将⾯向对象的绘图库包装成只使⽤函数的调⽤接⼝,pyplot模块的内部保存了当前图表以及当前⼦图等信息。
当前的图表和⼦图可以使⽤plt.gcf()和plt.gca()获得,分别表⽰"Get Current Figure"和"Get Current Axes"。
在pyplot模块中,许多函数都是对当前的Figure或Axes对象进⾏处理,⽐如说:plt.plot()实际上会通过plt.gca()获得当前的Axes对象ax,然后再调⽤ax.plot()⽅法实现真正的绘图。
可以在Ipython中输⼊类似"plt.plot??"的命令查看pyplot模块的函数是如何对各种绘图对象进⾏包装的。
1 matplotlib绘制3D图形matplotlib可以绘制3D图形,有的版本中不具备该模块,可以进⼊python环境,输⼊from mpl_toolkits.mplot3d import Axes3D 进⾏测试,如果导⼊成功则可以,否则需要安装matplotlib其他版本,这⾥我⽤的是2.0.2版本。
matplotlib中plot方法matplotlib是一个Python的数据可视化库,它提供了一种简单而有效的方式来创建各种类型的图表,包括线图、散点图、柱状图、饼图等等。
其中,plot方法是matplotlib中最常用的方法之一,它可以用来绘制线图、散点图、柱状图等等。
plot方法的基本语法如下:pythonplt.plot(x, y, format_string, kwargs)其中,x和y是数据序列,format_string是一个可选的格式化字符串,用于指定线条的颜色、线型、标记等属性。
kwargs是一些可选的关键字参数,用于指定其他的属性,例如图表的标题、x轴和y轴的标签等等。
下面我们来详细介绍一下plot方法的用法和一些常用的属性。
1. 绘制线图绘制线图是plot方法最常用的功能之一。
我们可以使用plot方法来绘制一条或多条线,例如:pythonimport matplotlib.pyplot as pltimport numpy as npx = np.linspace(0, 10, 100)y1 = np.sin(x)y2 = np.cos(x)plt.plot(x, y1, 'r-', label='sin(x)')plt.plot(x, y2, 'g', label='cos(x)')plt.legend()plt.show()这段代码会生成一个包含两条线的图表,其中一条线是红色的实线,表示sin(x)函数;另一条线是绿色的虚线,表示cos(x)函数。
我们可以使用format_string 参数来指定线条的颜色、线型、标记等属性。
例如,'r-'表示红色的实线,'g'表示绿色的虚线。
2. 绘制散点图除了绘制线图,plot方法还可以用来绘制散点图。
我们可以使用plot方法来绘制一组点,例如:pythonimport matplotlib.pyplot as pltimport numpy as npx = np.random.rand(100)y = np.random.rand(100)colors = np.random.rand(100)sizes = 1000 * np.random.rand(100)plt.scatter(x, y, c=colors, s=sizes, alpha=0.5)plt.show()这段代码会生成一个包含100个随机点的散点图,其中每个点的颜色和大小都是随机生成的。
Python数据可视化库Matplotlib的使用随着数据的不断增加和呈现方式的多样化,数据可视化变得越来越重要。
当我们处理大量数据时,可视化图表是一个非常好的选择,它们可以帮助我们更好地理解和分析数据。
Matplotlib是一个广泛使用的Python数据可视化库,它可以用来创建各种图表,比如线图、散点图、柱状图等。
本文将介绍Matplotlib的基本知识,包括安装、常用函数和创建不同类型的图表等。
一、Matplotlib的安装Matplotlib需要安装在Python环境中才能使用。
安装Matplotlib的方法有很多,最简单的方法是使用pip命令。
在命令行中输入以下命令:pip install matplotlib当然,Matplotlib也可以通过Anaconda等Python发行版来安装。
二、Matplotlib的基本知识Matplotlib提供了丰富的接口来创建图表,支持各种类型的图表。
在使用Matplotlib之前,我们需要了解Matplotlib的核心对象:Figure、Axes和Axis。
Figure是最上层的容器,代表整个图形窗口。
在Matplotlib中,我们可以在Figure上添加一个或多个Axes来绘制图表。
Axes是绘图区域,它是Figure的一个子类。
在Axes内可以添加坐标轴(Axis)、文字(Text)、网格(Grid)和数据(Data)等。
Axis是数据的基本轴。
在Matplotlib中,我们可以创建一个或多个Axis对象,以及为每个Axis对象设置其属性和样式。
三、Matplotlib的基本用法1.绘制曲线图在Matplotlib中,我们可以使用plot()函数来绘制曲线图。
plot()函数的参数包括x轴和y轴的数据,以及设置曲线的样式和颜色等。
例如,我们可以使用以下代码来绘制一个简单的曲线图:import matplotlib.pyplot as pltx = np.linspace(-np.pi, np.pi, 256, endpoint=True)y = np.sin(x)plt.plot(x, y)plt.show()在这个例子中,我们使用numpy库中的linspace()函数生成一个区间内的等差数列,并使用numpy库中的sin()函数生成对应的sin曲线。
Pythonmatplotlib绘图可视化知识点整理(⼩结)⽆论你⼯作在什么项⽬上,IPython都是值得推荐的。
利⽤ipython --pylab,可以进⼊PyLab模式,已经导⼊了matplotlib库与相关软件包(例如Numpy和Scipy),额可以直接使⽤相关库的功能。
本⽂作为学习过程中对matplotlib⼀些常⽤知识点的整理,⽅便查找。
这样IPython配置为使⽤你所指定的matplotlib GUI后端(TK/wxPython/PyQt/Mac OS X native/GTK)。
对于⼤部分⽤户⽽⾔,默认的后端就已经够⽤了。
Pylab模式还会向IPython引⼊⼀⼤堆模块和函数以提供⼀种更接近MATLAB的界⾯。
import matplotlib.pyplot as pltlabels='frogs','hogs','dogs','logs'sizes=15,20,45,10colors='yellowgreen','gold','lightskyblue','lightcoral'explode=0,0.1,0,0plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=50)plt.axis('equal')plt.show()matplotlib图标正常显⽰中⽂为了在图表中能够显⽰中⽂和负号等,需要下⾯⼀段设置:import matplotlib.pyplot as pltplt.rcParams['font.sas-serig']=['SimHei'] #⽤来正常显⽰中⽂标签plt.rcParams['axes.unicode_minus']=False #⽤来正常显⽰负号matplotlib inline和pylab inline可以使⽤ipython --pylab打开ipython命名窗⼝。
一、matplotlib的简介matplotlib是一个Python绘图库,它能够生成2D图形,包括线图、散点图、柱状图、饼图等,并且能够以高质量输出文件的形式保存这些图形。
matplotlib可以与NumPy一起使用,能够方便地对数据进行可视化。
二、matplotlib的安装要使用matplotlib,首先需要安装它。
可以通过pip命令来进行安装:```pip install matplotlib```安装完成后,在Python脚本中引入matplotlib库:```import matplotlib.pyplot as plt```三、matplotlib的基本用法1. 创建图形与坐标系要在matplotlib中绘制图形,首先需要创建一个图形对象和坐标系对象。
图形对象可以通过`plt.figure()`来创建,坐标系对象可以通过`plt.subplot()`来创建。
```pythonfig = plt.figure()ax = fig.add_subplot(111)```2. 绘制直线图要绘制直线图,可以使用`plt.plot()`方法。
这个方法可以传入x轴和y 轴上的数据点,并且可以指定线条的颜色、形状、宽度等参数。
```pythonx = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]plt.plot(x, y, color='r', linestyle='--', linewidth=2)```3. 绘制散点图要绘制散点图,可以使用`plt.scatter()`方法。
这个方法也可以传入x 轴和y轴上的数据点,并且可以指定点的大小、颜色等参数。
```pythonx = [1, 2, 3, 4, 5]y = [2, 3, 5, 7, 11]plt.scatter(x, y, s=50, c='b', marker='o')```4. 绘制柱状图要绘制柱状图,可以使用`plt.bar()`方法。
matplotlib基础绘图命令之bar的使⽤⽅法在matplotlib中,bar命令⽤于绘制柱状图,基本⽤法如下在matplotlib中,bar命令⽤于绘制柱状图,基本⽤法如下在matplotlib 中,bar命令⽤于绘制柱状图,基本⽤法如下在matplotlib中,bar命令⽤于绘制柱状图,基本⽤法如下在matplotlib中,bar命令⽤于绘制柱状图,基本⽤法如下在matplotlib中,bar命令⽤于绘制柱状图,基本⽤法如下plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1])输出结果如下参数x的值作为x轴坐标,height的值作为y轴坐标。
除了这两个基本参数外,bar命令常⽤的还有以下参数1. width, 柱⼦的宽度,即在x轴上的长度,默认是0.82. color, 柱⼦的填充⾊3. edgecolor, 柱⼦边框的颜⾊,默认为None4. linewidth, 柱⼦边框的宽度,默认为0,表⽰没有边框5. yerr,指定误差值的⼤⼩,⽤于在柱⼦上添加误差线6. ecolor, 表⽰errorbar color, 误差线的颜⾊7. bottom, 柱⼦底部的baseline, 默认为0各个参数设置的⽰例如下plt.bar(x = [1, 2, 3, 4], height = [4, 2, 3, 1], width = 0.8, edgecolor = 'black', linewidth = 2, align = 'center', color = 'g', yerr = 0.5, ecolor = 'r')输出结果如下柱状图还可以有很多的变种,通过barh命令,可以绘制⽔平⽅向的柱状图,⽤法如下plt.barh(y = [1, 2, 3, 4], width = [4, 2, 3, 1])输出结果如下在单⼀柱状图的基础上,通过叠加可以实现以下两种柱状图1. 堆积柱状图代码如下plt.bar(x = [1, 2, 3, 4], height = [4, 3, 2, 1], label = 'sampleA')plt.bar(x = [1, 2, 3, 4], height = [4, 3, 2, 1], bottom = [4, 3, 2, 1], label = 'sampleB')plt.legend()核⼼是通过将第⼀组柱⼦的⾼度作为第⼆组柱⼦的底部,即bottom参数,从⽽实现堆积的效果,输出结果如下2. 分组柱状图代码如下width = 0.4plt.bar(x = np.array([1, 2, 3, 4]) - width / 2, height = [4, 3, 2, 1], width = width, label = 'sampleA')plt.bar(x = np.array([1, 2, 3, 4]) + width / 2, height = [1, 2, 3, 4], width = width, label = 'sampleB')plt.legend()核⼼是根据宽度的值,⼿动计算柱⼦的中⼼坐标,然后⾃然叠加就可以形成⽔平展开的分组柱状图,输出结果如下matplotlib并不像R包ggplot2那样,提供了⼀步到位的接⼝,⽽是通过叠加组合最⼤程度的保留了灵活性,通过⼀⾏⾏绘图代码的叠加来实现复杂图表。
数据分析第⼆篇:matplotlib常⽤的⼏个绘图⽅法Matplotlibmatplotlib是python的绘图库,使⽤它可以很⽅便的绘制出版质量级别的图形matplotlib的基本功能1.基本绘图1.1 绘制坐标系中连续的线,设置线型/线宽/颜⾊绘制⼀条线的相关APIimport numpy as npimport matplotlib.pyplot as plt# xarray:散点的x坐标数组# yarray:散点的y坐标数组plt.plot(xarray, yarray)plt.show()import numpy as npimport matplotlib.pyplot as pltx = np.arange(1,10)y = np.arange(1,10)plt.plot(x, y)plt.show()绘制⽔平线和垂直线相关API# 绘制⼀条垂直x轴的线,需要给定x坐标值的value,指定y坐标范围plt.vlines(value, ymin, ymax,..)# 绘制⼀条垂直y轴的线,需要给定y坐标值的value,指定x坐标范围plt.hlines(value, xmin, xmax,..)import numpy as npimport matplotlib.pyplot as pltx = np.arange(1,10)y = np.arange(1,10)plt.plot(x, y)plt.vlines(5, 3, 8)plt.hlines(5, 3, 8)plt.show()线型/线宽/颜⾊plt.plot(x,y,linestyle='', # 线型linewidth=1, # 线宽color='', # 颜⾊alpha=0.5 # 透明度)r 红⾊g 绿⾊b 蓝⾊c cyanm 紫⾊y ⼟黄⾊k ⿊⾊w ⽩⾊1.2 设置坐标轴的范围plt.xlim(x_lim_min, x_lim_max)plt.ylim(y_lim_min, y_lim_max)1.3 设置坐标刻度# 设置x轴的坐标刻度# x_val_list:坐标值列表# x_text_list:坐标刻度列表plt.xticks(x_val_list, x_text_list)plt.yticks(y_val_list, y_text_list)# 设置坐标刻度[-π,-π/2, 0, π/2, π]---------------⽅法⼀------------x_val_list= [-np.pi, -np.pi/2, 0, np.pi/2, np.pi]x_text_list = ['-π','-π/2','0','π/2','π']plt.xticks(x_val_list, x_text_list)--------------⽅法⼆-------------x_text_list = [r'$-\pi$',r'$-\frac{\pi}{2}$',r'0',r'$\frac{\pi}{2}$',r'${\pi}$']刻度⽂本的特殊语法 - LaTeX排版语法规范设置坐标轴坐标轴包含四个:left/right/bottom/top# getCurrentAxis() 获取当前坐标轴对象ax = plt.gca()ax1 = ax.spines['left']axr = ax.spines['right']# 设置坐标轴的颜⾊axl.set_color('none') # 设置坐标轴颜⾊为透明# 设置坐标轴的位置axl.set_position((type,val))# 设置坐标轴颜⾊与位置ax = plt.gca()ax.spines['top'].set_color('none')ax.spines['right'].set_color('none')ax.spines['left'].set_position(('data',0))ax.spines['bottom'].set_position(('data',0))1.4 显⽰图例# ⾃动在窗⼝中某个位置添加图例# 添加图例需要在调⽤plt.plot()绘制曲线时设置label参数通过loc参数设置图例的位置plt.legend(loc='')# 实例plt.plot(x, cos_x, linestyle='--', linewidth=3, color='y', label=r'$y =\frac{1}{2}cos(x)$') plt.plot(x, sin_x, linestyle='-.', linewidth=1, color='m', label=r'$y=sin(x)$')plt.legend()1.5 绘制特殊点plt.scatter(x,y,marker='', # 点型s=3, # 点的⼤⼩edgecolor='', # 边缘⾊facecolor='', # 填充⾊zorder=3) # 绘制顺序1.6 为图像添加备注plt.annotate('', # 备注内容xycoords='', # 备注⽬标点使⽤的坐标系xy=(x,y), # 备注⽬标点的坐标textcoords= '', # 备注⽂本使⽤的坐标系xytext = (x,y), # 备注⽂本的坐标fontsize = 14, # 备注⽂本字体⼤⼩arrowprops = dict() # 提⽰箭头属性)arrowprops参数使⽤字典定义只想⽬标点的箭头样式arrowprops = dict(arrowstyle = '', # 定义箭头样式connectionstyle = '' # 定义连接线样式)# 可设置箭头的弧度connectionstyle='arc3, rad=0.1',2.⾼级绘图2.1 绘制⼦图⼀次绘制两个窗⼝plt.figure('', # 窗⼝标题figsize=(4,3), # 窗⼝⼤⼩facecolor = '' # 窗⼝颜⾊)plt.show() # 展⽰窗⼝# 可以创建多个窗⼝,每个窗⼝的标题不同,后续调⽤plt的⽅法进⾏绘制时将作⽤于当前窗⼝上#,如果希望修改已经创建过的窗⼝,可以通过plt.figure('figure1')⽅法把该窗⼝设置为当前窗⼝。
Matplotlib初识——简单绘制及plot函数Matplotlib主要是为数据可视化显⽰服务的库,受Matlab启发matplotlib.pyplot是绘制各类可视化图形的命令⼦库,相当于快捷⽅式pyplot 绘图区域概念在Matplotlib中Figure对象是图表的基础(通俗点讲就是绘图的画纸),⽽⼀个Figure可以分很多个绘图区域,在有的书上也称为Axes,请不要与坐标轴(Axis)搞混。
在绘制图形的时候⼀般是⼀个绘画区域绘制⼀个图形,可以通过subplot⽅法进⾏划分:plt.subplot(nrows.ncols,plot_number)第⼀个参数和第⼆个参数分别表⽰:纵向和横向绘图区域划分块数第三个参数为选定的绘图区域,从左到右从上到下依次编号。
例:plt.subplot(3,2,4)实例(⽹易mooc上好多错误,我仔细改了⼀遍):importnumpyasnpimportmatplotlib.pyplotaspltreturnnp.exp(-t)*np.cos(2*np.pi*t)a=np.arange(0.0,5.0,0.02)plt.subplot(2,1,1)#两⾏⼀列的划分,选取从上到下从左到右第⼀个plt.plot(a,f(a))plt.subplot(2,1,2)#选取第⼆个plt.plot(a,np.cos(2*np.pi*a),'r--')plt.show()label()函数:标注轴信息xlabel()和ylabel()函数分别可以给x轴和y轴标注信息,在标注中⽂信息时需要额外注意。
⼀般在绘图函数之前先标注好可以使⽤rcParamas⽅法进⾏全局调整:matplotlib.rcParams['font.family'] =但更建议使⽤第⼆种⽅法:在xlabel函数中添加参数fontproperties = '中⽂字体'pit.xlabel('横轴:时间',fontproperties='SimHei',frontsize=20)#frontsize是字体⼤⼩忘说了plot()函数:简单绘图概述该函数主要⽤来绘制简单的坐标系图像plt.plot(x,y,format_string,**kwargs)说明:x⽤来写⼊x轴的数据y⽤来写⼊y轴的数据在只绘制⼀条曲线时,可以省略x轴,但不能省略y轴,在省略x轴的时候使⽤y的检索(你的参数顺序)确定对应的x值,意思就是你第1个输⼊的y值没有x值的话,该点的坐标就是(1,y)format_string⽤来输⼊相关控制线条和外观的字符串。
Python实操:手把手教你用Matplotlib把数据画出来导读:获取数据之后,而不知道如何查看数据,用途还是有限的。
幸好,我们有Matplotlib!Matplotlib 是基于 NumPy 数组构建的多平台数据可视化库。
它是John Hunter 在2002年构想的,原本的设计是给 IPython 打补丁,让命令行中也可以有交互式的 MATLAB 风格的画图工具。
在近些年,已经出现了更新更好的工具最终替代了Matplotlib (比如 R 语言中的ggplot和ggvis),但 Matplotlib 依旧是一个经过良好测试的、跨平台的图形引擎。
作者:迈克尔·贝耶勒(Michael Beyeler)如需转载请联系大数据(ID:hzdashuju)01 引入 Matplotlib如果已安装Anaconda Python版本,就已经安装好了可以使用的Matplotlib。
否则,可能要访问官网并从中获取安装说明:正如使用np作为 NumPy 的缩写,我们将使用一些标准的缩写来表示 Matplotlib 的引入:In [1]: import matplotlib as mplIn [2]: import matplotlib.pyplot as plt在本书中,plt接口会被频繁使用。
02 生成一个简单的绘图让我们创建第一个绘图。
假设想要画出正弦函数sin(x)的线性图。
得到函数在x坐标轴上0≤x<10内所有点的值。
我们将使用 NumPy 中的 linspace 函数来在x坐标轴上创建一个从0到10的线性空间,以及100个采样点:In [3]: import numpy as npIn [4]: x = np.linspace(0, 10, 100)可以使用NumPy 中的sin函数得到所有x点的值,并通过调用plt中的plot函数把结果画出来:In [5]: plt.plot(x, np.sin(x))你亲自尝试了吗?发生了什么吗?有没有什么东西出现?实际情况是,取决于你在哪里运行脚本,可能无法看到任何东西。