大数据-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))你亲自尝试了吗?发生了什么吗?有没有什么东西出现?实际情况是,取决于你在哪里运行脚本,可能无法看到任何东西。
python强⼤的绘图模块matplotlib⽰例讲解Matplotlib 是 Python 的绘图库。
作为程序员,经常需要进⾏绘图,在我⾃⼰的⼯作中,如果需要绘图,⼀般都是将数据导⼊到excel中,然后通过excel⽣成图表,这样操作起来还是⽐较繁琐的,所以最近学习了⼀下Matplotlib模块,将该模块的常⽤的绘图⼿段和⼤家分享⼀下,提⾼⼤家在⼯作中的效率;在⽰例中,我们主要⽤到Matplotlib和Numpy这两个模块来为⼤家演⽰Python强⼤的绘图功能,相信⼤家通过我下⾯的10个⽰例,基本上可以满⾜⼤家⽇常⼯作的需求,再次强调⼀下,只是简单的⽤法,⼤家千万不要想通过这篇博客获取到太⾼深的⽤法。
下⾯进⼊正题1、绘制⼀条直线代码如下,下⾯的代码⼤家应该都可以看懂吧# 导⼊常⽤的包import numpy as npimport matplotlib.pyplot as plt# ⽣成-1到1的数据,⼀共⽣成100个,也可以⽣成1到-1的数据,这些数据是平均分布的# 定义x轴的数据x = np.linspace(-1,1,100)# 定义y轴的数据y = x * 2 + 100plt.plot(x,y)# 显⽰图像plt.show()效果如下2、创建⼀个画布,同时设置该画布的⼤⼩代码如下import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-1,1,100)y1 = x * 2 + 100y2 = x ** 2# 创建⼀个画布# figsize:设置画布的⼤⼩plt.figure(figsize=(2,2))plt.plot(x,y1)# 创建第⼆个画布plt.figure()plt.plot(x,y2)plt.show()效果如下,会同时显⽰两张画布3、在⼀张画布中画两条线,同时可以设置线的颜⾊,宽度,和风格代码如下import numpy as npimport matplotlib.pyplot as pltx = np.linspace(-1,1,100)y1 = x * 2 + 0.5y2 = x ** 2# color:表⽰设置线的颜⾊# linewidth:表⽰设置线的宽度# linestyle:表⽰设置线的风格plt.figure(figsize=(2,2))plt.plot(x,y1,color='r',linewidth=1.0,linestyle='--')plt.plot(x,y2,color='b',linewidth=5.0,linestyle='-')plt.show()# 上⾯的效果就是2条曲线被放到⼀个画布中效果如下4、限制x轴,y轴的显⽰范围,为x轴和y轴添加描述,替换x轴和y轴的显⽰信息代码如下import numpy as npimport matplotlib.pyplot as plt# 设置坐标轴x = np.linspace(-3,3,100)y1 = x * 2 + 0.5y2 = x ** 2plt.figure(figsize=(6,6))plt.plot(x,y1,color='r',linewidth=1.0,linestyle='--')plt.plot(x,y2,color='b',linewidth=5.0,linestyle='-')# 限制x轴的显⽰范围plt.xlim((-1,2))# 限制y轴的显⽰范围plt.ylim((-1,5))# 给x轴加描述plt.xlabel("xxxxxx")# 给y轴加描述plt.ylabel("yyyyyy")# 替换⼀下横坐标的显⽰temp = np.linspace(-2,2,11)plt.xticks(temp)# 替换纵坐标的标签,⽤level0代替之前的-1plt.yticks([-1,0,1,2,3,4,5],["level0","level1","level2","level3","level4","level5","level6"]) plt.show()效果如下5、对边框进⾏设置,调整x轴和y轴的位置代码如下import numpy as npimport matplotlib.pyplot as plt# 设置坐标轴x = np.linspace(-3,3,100)y1 = x * 2 + 0.5y2 = x ** 2plt.figure(figsize=(6,6))plt.plot(x,y1,color='r',linewidth=1.0,linestyle='--')plt.plot(x,y2,color='b',linewidth=5.0,linestyle='-')# 限制x轴的显⽰范围plt.xlim((-1,2))# 限制y轴的显⽰范围plt.ylim((-1,5))# 给x轴加描述plt.xlabel("xxxxxx")# 给y轴加描述plt.ylabel("yyyyyy")# 替换⼀下横坐标的显⽰temp = np.linspace(-2,2,11)plt.xticks(temp)# 替换纵坐标的标签,⽤level0代替之前的-1# plt.yticks([-1,0,1,2,3,4,5],["level0","level1","level2","level3","level4","level5","level6"]) # 获取边框ax = plt.gca()# 设置右边框的颜⾊为红⾊ax.spines["right"].set_color("r")# 去掉上边框ax.spines["top"].set_color(None)# 把x轴的刻度设置为bottomax.xaxis.set_ticks_position("bottom")# 把y轴的客户设置为leftax.yaxis.set_ticks_position("left")# 设置x和y交汇的点,x轴是0,y是也是0,也就是x轴和y轴的都是0点交汇ax.spines["bottom"].set_position(("data",0))ax.spines["left"].set_position(("data",0))plt.show()效果如下6、为画布添加图例代码如下#Auther Bob#--*--conding:utf-8 --*--import numpy as npimport matplotlib.pyplot as plt# 设置图例x = np.linspace(-3, 3, 100)y1 = x * 2 + 0.5y2 = x ** 2plt.figure(figsize=(6, 6))# ⾸先要为两条线分别取名,这⾥的逗号必须要有l1, = plt.plot(x, y1, color='r', linewidth=1.0, linestyle='--')l2, = plt.plot(x, y2, color='b', linewidth=5.0, linestyle='-')# handles控制图例中要说明的线# labels为两条线分别取⼀个label# loc控制图例的显⽰位置,⼀般⽤best,由代码为我们选择最优的位置即可plt.legend(handles=[l1, l2], labels=["test1", "test2"], loc='best')# 限制x轴的显⽰范围plt.xlim((-1, 2))# 限制y轴的显⽰范围plt.ylim((-1, 5))# 给x轴加描述plt.xlabel("xxxxxx")# 给y轴加描述plt.ylabel("yyyyyy")# 替换⼀下横坐标的显⽰temp = np.linspace(-2, 2, 11)plt.xticks(temp)# 替换纵坐标的标签,⽤level0代替之前的-1plt.yticks([-1, 0, 1, 2, 3, 4, 5], ["level0", "level1", "level2", "level3", "level4", "level5", "level6"]) # 为图像加⼀个图例,⽤来对图像做说明plt.show()效果如下7、为图像添加描述代码如下import numpy as npimport matplotlib.pyplot as plt# 为图像做标注x = np.linspace(-3,3,100)y1 = x * 2# y2 = x ** 2plt.figure(figsize=(6,6))plt.plot(x,y1,color='r',linewidth=1.0,linestyle='-')# 给x轴加描述plt.xlabel("xxxxxx")# 给y轴加描述plt.ylabel("yyyyyy")# ======================================================# 在x轴为x0,y轴为x0 * 2上画⼀个点,这个点的颜⾊是红⾊,⼤⼩为50,这个⼤⼩就是这个点显⽰的⼤⼩x0 = 0.5y0 = x0 * 2# scatter是画点的⽅法plt.scatter(x0,y0,color='g',s=50)# 画线# 这条线是第⼀个点的坐标为[x0,y0],第⼆个点的坐标为[x0,-6],后⾯就是设置线的风格,线的颜⾊,线的宽度plt.plot([x0,x0],[y0,-6],color='k',linestyle='--',linewidth=1.0)# 画箭头和描述# xy代表我们的点# xytext代码我们描述的位置,基于当前的点,在x轴+30,在y轴-30# r'$2*x={n}$是我们要显⽰的⽂字信息,格式必须要这样# textcoords表⽰作为起点# fontsize表⽰设置字体⼤⼩# arrowprops设置箭头# arrowstyle设置箭头的样式# connectionstyle设置风格.2表⽰弧度plt.annotate(r'$2*0.5={n}$'.format(n = y0),xy=(x0,y0),xytext=(+30,-30),textcoords='offset points',fontsize=10,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2')) # 显⽰⽂字描述,从x轴为-1,y轴为2开始显⽰,$$中就是要显⽰的字符,这⾥如果要显⽰空格,则需要转义# fontdict设置字体plt.text(-1,2,r'$1\ 2\ 3\ 4$',fontdict={"size":16,"color":"r"})# =========================================================# 为图像加⼀个图例,⽤来对图像做说明plt.show()效果如下8、绘制散点图代码如下import numpy as npimport matplotlib.pyplot as plt# 绘制散点图# plt.scatter(np.arange(1,10,1),np.arange(10,19,1))# plt.scatter(np.linspace(-3,3,10),np.linspace(-3,3,10)) x = np.random.normal(1,10,500)y = np.random.normal(1,10,500)print(x)# s设置点的⼤⼩# c是颜⾊# alpha是透明度plt.scatter(x,y,s=50,c='b',alpha=0.5)plt.show()效果如下9、绘制直⽅图代码如下import numpy as npimport matplotlib.pyplot as plt# 绘制直⽅图x = np.arange(10)y = x ** 2 + 10# facecolor设置柱体的颜⾊# edgecolor设置边框的颜⾊plt.bar(x,y,facecolor='g',edgecolor='r')# 绘制翻转过来的直⽅图# plt.bar(x,-y)#显⽰⽂字for x,y in zip(x,y):plt.text(x,y,"{f}".format(f=y),ha="center",va='bottom') plt.show()效果如下10、⼀张画布显⽰多张图像代码如下#Auther Bob#--*--conding:utf-8 --*--import numpy as npimport matplotlib.pyplot as plt# plt.figure()# 有⼀个两⾏两列的单元格,这个位于第⼀个单元格# plt.subplot(2,2,1)# 画⼀条【0,0】-----》【1,1】的直线# plt.plot([0,1],[0,1])# 有⼀个两⾏两列的单元格,这个位于第⼀个单元格# plt.subplot(2,2,2)# 画⼀条【0,0】-----》【1,1】的直线# plt.plot([0,1],[0,1])# 有⼀个两⾏两列的单元格,这个位于第⼀个单元格# plt.subplot(2,2,3)# 画⼀条【0,0】-----》【1,1】的直线# plt.plot([1,0],[0,1])# plt.show()# 上⾯的例⼦,每张图他显⽰的⼤⼩是⼀样的,我们想显⽰不同的⼤⼩该怎么办?plt.figure()# 有⼀个两⾏三列的单元格,这个位于第⼀个单元格plt.subplot(2,1,1)# 画⼀条【0,0】-----》【1,1】的直线plt.plot([0,1],[0,1])# 有⼀个两⾏三列的单元格,这个位于第四个单元格,因为第⼀个单元格占了3个位⼦,所以这⾥就是第四个plt.subplot(2,3,4)# 画⼀条【0,0】-----》【1,1】的直线plt.plot([0,1],[0,1])# 有⼀个两⾏三列的单元格,这个位于第五个单元格plt.subplot(2,3,5)# 画⼀条【0,0】-----》【1,1】的直线plt.plot([1,0],[0,1])plt.show()效果如下11、matplotlib模块中的颜⾊和线条风格,取⾃菜鸟教程作为线性图的替代,可以通过向 plot() 函数添加格式字符串来显⽰离散值。
matplotlib基础绘图命令之imshow的使⽤在matplotlib中,imshow⽅法⽤于绘制热图,基本⽤法如下import matplotlib.pyplot as pltimport numpy as npnp.random.seed(123456789)data = np.random.rand(25).reshape(5, 5)plt.imshow(data)输出结果如下imshow⽅法⾸先将⼆维数组的值标准化为0到1之间的值,然后根据指定的渐变⾊依次赋予每个单元格对应的颜⾊,就形成了热图。
对于热图⽽⾔,通常我们还需要画出对应的图例,图例通过colorbar⽅法来实现,代码如下plt.imshow(data)plt.colorbar()输出结果如下imshow⽅法常⽤的⼏个参数如下1. cmapcmap是colormap的简称,⽤于指定渐变⾊,默认的值为viridis, 在matplotlib中,内置了⼀系列的渐变⾊,⽤法如下plt.imshow(data, cmap='Greens')输出结果如下完整的内置colormap的列表见如下链接2. aspectaspect⽤于指定热图的单元格的⼤⼩,默认值为equal,此时单元格⽤于是⼀个⽅块,当设置为auto时,会根据画布的⼤⼩动态调整单元格的⼤⼩,⽤法如下plt.imshow(data, aspect='auto')输出结果如下3. alphaalpha参数⽤于指定透明度,⽤法如下plt.imshow(data, alpha=0.8)输出结果如下4. originorign参数指定绘制热图时的⽅向,默认值为upper, 此时热图的右上⾓为(0, 0), 当设置为lower时,热图的左下⾓为(0,0), ⽤法如下plt.imshow(data, origin='lower')输出结果如下5. vmin和vmaxvmin和vmax参数⽤于限定数值的范围,只将vmin和vmax之间的值进⾏映射,⽤法如下plt.imshow(data, vmin=-0.8, vmax=0.8)plt.colorbar()输出结果如下6. interpolationinterprolation参数控制热图的显⽰形式,是⼀个较难理解的参数,同样的数据,不同取值对应的热图形式如下在⽇常使⽤⽽⾔,nearest和None是应⽤的最多的。
Python数据可视化教程之Matplotlib实现各种图表实例前⾔数据分析就是将数据以各种图表的形式展现给领导,供领导做决策⽤,因此熟练掌握饼图、柱状图、线图等图表制作是⼀个数据分析师必备的技能。
Python有两个⽐较出⾊的图表制作框架,分别是Matplotlib和Pyechart。
本⽂主要讲述使⽤Matplotlib制作各种数据图表。
Matplotlib是最流⾏的⽤于绘制2D数据图表的Python库,能够在各种平台上使⽤,可以绘制散点图、柱状图、饼图等。
1、柱状图是⼀种以长⽅形或长⽅体的⾼度为变量的表达图形的统计报告图,由⼀系列⾼度不等的纵向条纹表⽰数据分布的情况,⽤来⽐较两个或以上的价值(不同时间或者不同条件),只有⼀个变量,通常利⽤于较⼩的数据集分析。
柱状图可以⽤来⽐较数据之间的多少,可以⽤来观察某⼀事件的变化趋势,柱状图亦可横向排列,或⽤多维⽅式表达。
实现代码:# 导⼊绘图模块import matplotlib.pyplot as plt# 构建数据sales = [7125,12753,13143,8635]# 中⽂乱码的处理,rcParams也可以⽤于设置图的分辨率,⼤⼩等信息plt.rcParams['font.sans-serif'] =['SimHei']plt.rcParams['axes.unicode_minus'] = False# 绘图,第⼀个参数是x轴的数据,第⼆个参数是y轴的数据,第三个参数是柱⼦的⼤⼩,默认值是1(值在0到1之间),color是柱⼦的颜⾊,alpha是柱⼦的透明度plt.bar(range(4), sales, 0.4,color='r', alpha = 0.8)# 添加轴标签plt.ylabel('销量')# 添加标题plt.title('⽔果2018年度销量')# 添加刻度标签plt.xticks(range(4),['苹果','⾹蕉','梨','猕猴桃'])# 设置Y轴的刻度范围plt.ylim([5000,15000])# 为每个条形图添加数值标签for x,y in enumerate(sales):plt.text(x,y+100,'%s' %y,ha='center')# 显⽰图形plt.show()效果图:只需绘制柱状图的函数bar()改成barh()就可以将柱状图长⽅形或长⽅体从垂直⽅向变为⽔平⽅向。
matplotlib使用手册Matplotlib是一个用于绘制数据可视化图形的Python库,它提供了各种各样的功能和工具,使得数据分析和探索变得非常简单和直观。
在本篇文章中,我们将深入探讨Matplotlib的使用方法并展示一些实例,以帮助读者更好地理解该库的强大功能。
1. 导入Matplotlib和创建基本图形在使用Matplotlib之前,我们需要先导入库。
常用的导入语句是:```pythonimport matplotlib.pyplot as plt```在导入之后,我们可以开始创建各种各样的图形。
最简单的是创建一个基本的折线图。
```pythonplt.plot([1, 2, 3, 4])plt.show()```这段代码会生成一个包含了四个点的折线图,其中y轴的数据是[1, 2, 3, 4]。
我们可以通过调整数据来创建不同的图形。
2. 自定义图形Matplotlib允许我们对图形进行多种自定义操作,从简单的调整轴的范围到添加图例等高级功能。
下面是一些常用的自定义操作:2.1. 调整轴的范围我们可以使用`plt.xlim()`和`plt.ylim()`函数来调整x轴和y轴的显示范围,以便更好地突出显示数据的变化趋势。
```pythonplt.plot([1, 2, 3, 4])plt.xlim(0, 5)plt.ylim(0, 5)plt.show()```2.2. 添加标签和标题为了让图形更加易读和易懂,我们可以添加标签和标题。
使用`plt.xlabel()`和`plt.ylabel()`函数添加x轴和y轴的标签,使用`plt.title()`函数添加图形的标题。
```pythonplt.plot([1, 2, 3, 4])plt.xlabel('x轴')plt.ylabel('y轴')plt.title('这是一个折线图')plt.show()```2.3. 添加图例当我们在同一个图表中绘制多个数据集时,通常需要为每个数据集添加图例以便更好地区分它们。
Python中的matplotlib库是一个功能强大的数据可视化工具,可以帮助用户创建各种类型的图表和图形。
在使用matplotlib库时,一些常用的函数可以帮助用户更高效地实现数据可视化的目标。
本文将介绍一些常用的matplotlib函数,帮助读者更好地掌握数据可视化技巧。
1. plt.plot()plt.plot()函数是matplotlib中最常用的函数之一,用于绘制折线图。
该函数可以接受多个参数,包括x轴数据,y轴数据以及线条样式等。
我们可以使用plt.plot(x, y, color='r', linestyle='-', linewidth=2)来绘制一条红色实线并设置线宽为2的折线图。
这个函数非常灵活,可以满足各种折线图的需求。
2. plt.scatter()plt.scatter()函数用于绘制散点图,可以展示变量之间的关系以及离群点的分布情况。
该函数接受x轴数据和y轴数据作为参数,并可以指定点的颜色,大小和形状等样式。
使用plt.scatter(x, y, c='b', s=50, marker='o')可以绘制出蓝色的点,大小为50,并且形状为圆形的散点图。
3. plt.bar()plt.bar()函数用于绘制条形图,可以展示不同类别之间的数量或大小对比情况。
该函数接受x轴数据和y轴数据作为参数,并可以指定条形的宽度,颜色和透明度等样式。
使用plt.bar(x, y, width=0.5,color='g', alpha=0.5)可以绘制出绿色、宽度为0.5并且透明度为0.5的条形图。
4. plt.pie()plt.pie()函数用于绘制饼图,可以展示不同类别占比的情况。
该函数接受一个数据列表作为参数,并可以指定饼图的颜色,标签和旋转角度等样式。
使用plt.pie(data, colors=['r', 'g', 'b'], labels=['A', 'B', 'C'], startangle=90)可以绘制出红绿蓝三种颜色的饼图,并且指定起始角度为90度。
PythonMatplotlib绘图,参数操作准备⼯作我们需要先安装matplotlib库,然后导⼊库,这些很简单,我就不讲了,哦,把numpy也导⼊进来。
import matplotlib.pyplot as pltimport numpy as np正式开始plt.和ax.我们经常会在画图的代码⾥看到,有⽤plt.的,有⽤ax.的,两者到底有什么区别呢,画的图有什么不⼀样吗,我们先来⽤两种经常看到的⽅式实现⼀下。
plt.fig=plt.figure(num=1,figsize=(4,4))plt.plot([1,2,3,4],[1,2,3,4])plt.show()ax.fig=plt.figure(num=1,figsize=(4,4))ax=fig.add_subplot(111)ax.plot([1,2,3,4],[1,2,3,4])plt.show()我们看到上⾯两种画图⽅式可视化结果并⽆不同,那区别在哪呢?其实呢,第⼀种⽅式呢,是先⽣成了⼀个画布,然后在这个画布上隐式的⽣成⼀个画图区域来进⾏画图,第⼆种⽅式,先⽣成⼀个画布,然后,我们在此画布上,选定⼀个⼦区域画了⼀个⼦图,上⼀张官⽅的图,看看你能不能更好的理解除了ax之外,我们也可以直接⽤plt添加⼦图,⽅式如下fig=plt.figure(num=1,figsize=(4,4))plt.subplot(111)plt.plot([1,2,3,4],[1,2,3,4])plt.show()你看,这样添加⼦图,也是⼀样的,fig,⽣成⼀个画布,plt.subplot(111),将画布分为1x1的分布,并选中第⼀个⼦图进⾏操作。
虽然这样看着⼀样呢,但是后⾯修饰图⽚的时候,ax这个⽅式⽐plt的⽅式更加⽅便。
因此,本⽂我们⽤ax⽅式来学习画图,也希望⼤家都提前选定⼀种⾃⼰喜欢的⽅式来画图,添加⼦图,等⼀些列操作。
⼦图的创建在上⼀节的介绍中,讲到了⼦图,可能刚接触画图的同学,会有点疑惑,这节,我们来详细讲讲⼦图。