Python可视化库matplotlib(基础整理)

绘制基本曲线

使用plot函数绘制函数曲线,可以调整plot函数参数配置曲线样式、粗细、颜色、标记等

设置坐标轴
(1.)spines移动坐标轴
(2.)xlim方法设置坐标轴刻度取值范围
(3.)xticks,yticks方法设置x,y轴的刻度标签值
(4.)title方法设置标题,xlabel,ylabel方法设置坐标轴描述
设置图片上的描述
(1.)text方法设置图片上的文字描述和注解
(2.)annotate方法对图片上某个点加注解
(3.)legend方法设置图像图例

可使用如下两种方式:
1: 在 plt.plot 函数中添加 label 参数后,使用 plt.legend(loc=’up right’)
2: 不使用参数 label, 直接使用如下命令:

网格线开关plt.grid(True)
图像显示plt.show()
图像保存savefig(’…/ / .png’)

常用图形

(1)曲线图:描绘波动,2个维度matplotlib.pyplot.plot(data)
(2)灰度图:直方图,1个维度matplotlib.pyplot.hist(data)
(3)散点图:2个维度数据的关联程度matplotlib.pyplot.scatter(data)
(4)箱式图:设定上下限,除数据噪声matplotlib.pyplot.boxplot(data)
(5)饼状图:各类别占比matplotlib.pyplot.pie(data)


本文下述各个代码片段都是独立运行的。

一幅数据图基本上包括如下结构:
Data: 数据区,包括数据点\描绘形状
Axis: 坐标轴,包括X轴\Y轴及其标签、刻度尺及其标签
Title: 标题,数据图的描述
Legend: 图例,区分图中包含的多种曲线或不同分类的数据
其他的还有图形文本 (Text)\注解 (Annotate)等其他描述

绘制基本曲线

使用plot函数绘制函数曲线,可以调整plot函数参数配置曲线样式、粗细、颜色、标记等

%matplotlib inline  
#图嵌入web窗口jupyter notebook中

import numpy as np
import matplotlib.pyplot as plt
from pylab import *

#准备数据
x=np.arange(0.,10,0.2)
y1=np.cos(x)
y2=np.sin(x)
y3=np.sqrt(x)

plt.rcParams['figure.figsize']=(12,8)   #reParams设置图片尺寸
plt.plot(x,y1,color='blue',linewidth=1.5,linestyle='-',marker='.',label=r'$y=cos{x}$')
plt.plot(x,y2,color='green',linewidth=1.5,linestyle='-',marker='*',label=r'$y=sin{x}$')
plt.plot(x,y3,color='m',linewidth=1.5,linestyle='-',marker='x',label=r'$y=\sqrt{x}$')

#color参数设定线颜色
#linewidth参数设定虚线、点化虚线、粗虚线、实线
#marker参数设定在曲线上标记的特殊符号,以区分不同的线段
#label参数和图的legend标号有关

这里写图片描述

设置坐标轴

(1.)spines移动坐标轴
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *

ax=plt.subplot(111)  #设置一个空图
ax.spines['right'].set_color('none')  #set_color设置右边轴线为透明色
ax.spines['top'].set_color('none')

#移动下边边框线,相当于移动x轴
ax.xaxis.set_ticks_position('bottom')  #设置水平轴上的坐标轴刻度
ax.spines['bottom'].set_position(('data',0))  #set_position设置轴位置:'center' -> ('axes',0.5);'zero' -> ('data', 0.0;('data',anyvalue)

ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data',0.1))

这里写图片描述
这里写图片描述

(2.)xlim方法设置坐标轴刻度取值范围
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(-1.5,4.0)

这里写图片描述

(3.)xticks,yticks方法设置x,y轴的刻度标签值
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(-1.5,4.0)
plt.xticks([2,4,6,8,10],[r'two',r'four',r'six',r'8',r'10'])
plt.yticks([-1.0,0.0,1.0,2.0,3.0,4.0],[r'bottom',r'0.0',r'1.0',r'2.0',r'3.0',r'4.0'])

这里写图片描述

(4.)title方法设置标题,xlabel,ylabel方法设置坐标轴描述
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(-1.5,4.0)
plt.xticks([2,4,6,8,10],[r'two',r'four',r'six',r'8',r'10'])
plt.yticks([-1.0,0.0,1.0,2.0,3.0,4.0],[r'bottom',r'0.0',r'1.0',r'2.0',r'3.0',r'4.0'])
plt.title(r'$the \ function \ figure \ of \ cos(), \ sin() \ and \ sqrt()$',fontsize=19)  #fontsize参数设置字体大小
#'\'号两侧必须各有一个空格字符,否则无法解析
plt.xlabel(r'$the \ input \ value \ of \ x$',fontsize=18,labelpad=18.8)  #labelpad参数设置描述距离轴远近
plt.ylabel(r'$y=f(x)$',fontsize=18,labelpad=12.5)

这里写图片描述

设置图片上的描述

(1.)text方法设置图片上的文字描述和注解
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,1,0.02)
plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(-1.5,4.0)
plt.text(0.8,2.9,r'$x \in [0.0, \ 10.0]$',color='k',fontsize=10)
plt.text(0.8,0.8,r'$y \in [-1.0, \ 4.0]$',color='k',fontsize=10)

这里写图片描述

(2.)annotate方法对图片上某个点加注解
%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
plt.xlim(x.min()*1.1,x.max()*1.1)
plt.ylim(-1.5,4.0)
plt.scatter([8,],[np.sqrt(8),],50,color='m')  #使用散点图放大当前点
plt.annotate(r'$2\sqrt{2}$',xy=(8,np.sqrt(8)),xytext=(8.5,2.2),fontsize=16,color='#090909',\
             arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=0.1',color='#090909'))
#xy参数设置'被注解点'的坐标,xytext参数设置'注解文字'的位置,arrowprops参数设置注解文字与被注解点的连接方式

这里写图片描述

(3.)legend方法设置图像图例

可使用如下两种方式:
1: 在 plt.plot 函数中添加 label 参数后,使用 plt.legend(loc=’up right’)

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
y1=np.cos(x)
y2=np.sin(x)
y3=np.sqrt(x)
plt.rcParams['figure.figsize']=(10,6)   #reParams设置图片尺寸
plt.plot(x,y1,color='blue',linewidth=1.5,linestyle='-',marker='.',label=r'$y=cos{x}$')
plt.plot(x,y2,color='green',linewidth=1.5,linestyle='-',marker='*',label=r'$y=sin{x}$')
plt.plot(x,y3,color='m',linewidth=1.5,linestyle='-',marker='x',label=r'$y=\sqrt{x}$')
plt.legend(loc='upper right')  #loc参数设置图例在图片中的位置

这里写图片描述

2: 不使用参数 label, 直接使用如下命令:

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(0.,10,0.2)
y1=np.cos(x)
y2=np.sin(x)
y3=np.sqrt(x)
plt.rcParams['figure.figsize']=(10,6)   #reParams设置图片尺寸
plt.plot(x,y1,color='blue',linewidth=1.5,linestyle='-',marker='.')
plt.plot(x,y2,color='green',linewidth=1.5,linestyle='-',marker='*')
plt.plot(x,y3,color='m',linewidth=1.5,linestyle='-',marker='x')
plt.legend(['cos(x)','sin(x)','sqrt(x)'],loc='upper right')  #对好顺序

这里写图片描述

网格线开关plt.grid(True)

plt.grid(True)

图像显示plt.show()

plt.show()

图像保存savefig(’…/ / .png’)

savefig('../imagetest/picname.png',dpi=48)

常用图形

(1)曲线图:描绘波动,2个维度matplotlib.pyplot.plot(data)

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(-5,5,0.1)
y=x**2
plt.plot(x,y)
plt.grid(True)
plt.show()

这里写图片描述

(2)灰度图:直方图,1个维度matplotlib.pyplot.hist(data)

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.random.normal(size=1000)
plt.hist(x,bins=10)  #bins参数设置分桶数目

这里写图片描述

(3)散点图:2个维度数据的关联程度matplotlib.pyplot.scatter(data)

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
plt.rcParams['figure.figsize']=(8,8)
x=np.random.normal(size=1000)
y=np.random.normal(size=1000)
plt.scatter(x,y)

这里写图片描述

(4)箱式图:设定上下限,除数据噪声matplotlib.pyplot.boxplot(data)
箱式图(箱线图)科普:
上边缘(Q3+1.5IQR)、下边缘(Q1-1.5IQR)、IQR=Q3-Q1
上四分位数(Q3)、下四分位数(Q1)
中位数
异常值
处理异常值时与3σσ标准的异同:统计边界是否受异常值影响、容忍度的大小

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
x=np.arange(-5,5,0.1)
plt.boxplot(x)

这里写图片描述

(5)饼状图:各类别占比matplotlib.pyplot.pie(data)

%matplotlib inline  
import numpy as np
import matplotlib.pyplot as plt
from pylab import *
sort=['Foxes','Cats','Dogs','Pigs']
sizes=[13,30,30,37]
color=['m','b','g','r']
explode=(0,0.1,0,0)   #分离第2类,数值表示分离远近
plt.pie(sizes,explode=explode,labels=sort,colors=color,autopct='%1.1f%%',shadow=True)  #autopct参数加百分比

这里写图片描述

### 回答1: Matplotlib是一个Python可视化,用于绘制各种静态、动态、交互式的图表和图形。它提供了一系列的API,可以用于绘制线图、散点图、柱状图、饼图、3D图等等。Matplotlib的优点是易于使用、灵活性高、可扩展性强,同时还有大量的文档和示例可供参考。 ### 回答2: MatplotlibPython中你可以使用的最流行和最强大的可视化之一。它具有广泛的可视化选项,一些常见的绘图包括线性图、散点图、柱状图、直方图、饼图、热图、轮廓图、等高线图等等。此外,Matplotlib也能够绘制动画和3D可视化Matplotlib的API简洁、直观。你可以使用Matplotlib创建高质量的图形,充满了自定义选项以及可扩展性。此外,这个Python的其他科学计算非常容易集成。 一些优点包括: - 免费开源,可以使用广泛的图形选项和处理图形的选项; - 允许创建高品质的图形,并包含丰富、观赏性的文本注释和标签; - 可以与Python的科学、数学和统计计算无缝集成; - 可以保存图形为各种图像格式(如PNG、PDF、SVG和EPS); - 可以创建交互式的图形,例如zoom-in、zoom-out等。 此外,Matplotlib还有许多插件和扩展,可帮助你使使用更加方便。例如是一个使你可以轻松地在Python脚本中集成Plotly图表的Matplotlib扩展接口。 需要注意的是,Matplotlib绘制一些复杂或大数据量的图表,可能需要对计算机硬件进行更多方面的优化,否则可能会影响计算机的性能。 总而言之,Matplotlib是一种强大的Python可视化,集成广泛且易于使用,拥有许多各种类型的图形模块,方便用户绘制精美的图表和图形。它适用于数据分析和可视化、科学和工程计算、以及各种其他任务。同时,也存在其他强大的可视化,如Seaborn、Plotly等。 ### 回答3: Python是一门广泛应用于科学计算和数据分析领域的编程语言,而Matplotlib则是Python中最常用的数据可视化之一。Matplotlib的功能非常强大,可以绘制多种类型的图表,包括线图、散点图、柱状图等。同时,Matplotlib的可定制性也非常强,用户可以对绘制的图表进行各种调整,例如修改颜色、大小、标签和标题等。此外,Matplotlib还支持多种输出格式,包括PNG、PDF、SVG等。 Matplotlib的使用较为简单,只需要在Python中导入Matplotlib,并调用相应的函数即可。例如,要绘制一个线图,可以使用如下代码: ```python import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 10, 0.1) y = np.sin(x) plt.plot(x, y) plt.title("Sine Wave") plt.xlabel("x") plt.ylabel("y") plt.show() ``` 上述代码中,通过调用NumPy生成了一组“x”轴数据和一组“y”轴数据,然后使用Matplotlib的`plot()`函数绘制了一个简单的线图,并通过`title()`、`xlabel()`和`ylabel()`函数设置了图表的标题和轴标签。 Matplotlib不仅支持基本的绘图功能,还支持更高级的绘图技巧,如子图、3D图、动态图等。同时,Matplotlib还兼容多种Python的科学计算,如NumPy、SciPy、Pandas等,可以方便地将这些的数据转化为图表进行可视化展示。 总之,Matplotlib的强大功能和扩展性,使其成为Python领域中最常用的可视化之一,广泛应用于科学研究、数据可视化等多个领域。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值