Matplotlib应用

matplotlib模块依赖于numpy模块和tkinter模块,可以绘制多种形式的图形,
包括线图、直方图、饼状图、散点图、误差线图等等,图形质量可满足出版要求,是数据可视化的重要工具

Matplotlib模块:

1.绘制正弦余弦曲线

import numpy as np 
import matplotlib.pyplot as pl 


x = np.arange(0,  3  * np.pi,  0.1)


y=np.sin(x)
z=np.cos(x)


pl.title("sin-cos")

pl.plot(x,y,label='sin')
pl.plot(x,z,label='cos')


pl.plot(x, y) 
pl.show()

在这里插入图片描述
2.绘制散点图

>>> import numpy as np
>>> import matplotlib.pyplot as pl
>>> a=np.arange(0,2.0*np.pi,0.1)

>>> b=np.cos(a)
>>> pl.scatter(a,b)
<matplotlib.collections.PathCollection object at 0x09A0A210>
>>> pl.show()

在这里插入图片描述

>>> import numpy as np
>>> import matplotlib.pylab as pl
>>> x=np.random.random(100)
>>> y=np.random.random(100)
>>> pl.scatter(x,y,s=x*500,c=u'r',marker=u'*')
<matplotlib.collections.PathCollection object at 0x09FF10F0>
>>> pl.show()

在这里插入图片描述

import numpy as np 
from matplotlib import pyplot as plt 
 
x = np.arange(1,11) 
y =  2  * x +  5 
plt.title("Matplotlib demo") 
plt.xlabel("x axis caption") 
plt.ylabel("y axis caption") 
plt.plot(x,y,"ob") 
plt.show()

在这里插入图片描述
3.绘制饼状图

import numpy as np 
import matplotlib.pyplot as plt




labels='frogs','hogs','dogs','logs'
sizes=[15,30,45,10]
colors=['yellowgreen','gold','#FF0000','lightcoral']
explode=(0,0.1,0,0.1)
fig=plt.figure()
ax=fig.gca()
ax.pie(np.random.random(4),explode=explode,labels=labels,colors=colors,
       autopct='% 1.1f% %',shadow=True,startangle=90,redius=0.25,
       center=(0,0),frame=True)


ax.pie(np.random.random(4),explode=explode,labels=labels,colors=colors,
       autopct='% 1.1f% %',shadow=True,startangle=90,redius=0.25,
       center=(1,1),frame=True)


ax.pie(np.random.random(4),explode=explode,labels=labels,colors=colors,
       autopct='% 1.1f% %',shadow=True,startangle=90,redius=0.25,
       center=(0,1),frame=True)


ax.pie(np.random.random(4),explode=explode,labels=labels,colors=colors,
       autopct='% 1.1f% %',shadow=True,startangle=90,redius=0.25,
       center=(1,0),frame=True)


ax.set_xticks([0,1])
ax.set_yticks([0,1])
ax.set_xtickslabels(['sunny','cloudy'])
ax.set_ytickslabels(['day','rainy'])
ax.set_xlim((-0.5,1.5))
ax.set_ylim((-0.5,1.5))
ax.set_aspect('equal')

4.使用pyplot绘制多个图形在一起显示

import numpy as np 
import matplotlib.pyplot as plt


x=np.linspace(0,2*np.pi,500)
y=np.sin(x)
z=np.cos(x*x)
plt.figure(figsize=(8,4))
plt.plot(x,y,label='%sin(x)$',color='red',linewidth=2)
plt.plot(x,z,'b--',label='%cos(x^2)$')
plt.xlabel('time(s)')
plt.ylabel('volt')
plt.title('sin--cos figure using pyplot')
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()

在这里插入图片描述
5.使用pyplot绘制,多个图形单独显示

import numpy as np
import matplotlib.pyplot as plt


x=np.linspace(0,2*np.pi,500)
y1=np.sin(x)
y2=np.cos(x)
y3=np.sin(x*x)
plt.figure(1)


ax1=plt.subplot(2,2,1)
ax2=plt.subplot(2,2,2)
ax3=plt.subplot(2,1,2)


plt.sca(ax1)
plt.plot(x,y1,color='red')
plt.ylim(-1.2,1.2)


plt.sca(ax2)
plt.plot(x,y2,'b--')
plt.ylim(-1.2,1.2)


plt.sca(ax3)
plt.plot(x,y1,'g--')
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt # 计算正弦和余弦曲线上的点的 x 和 y 坐标 
x = np.arange(0,  3  * np.pi,  0.1) 
y_sin = np.sin(x) 
y_cos = np.cos(x)  # 建立 subplot 网格,高为 2,宽为 1  # 激活第一个subplot
plt.subplot(2,  1,  1)  # 绘制第一个图像 
plt.plot(x, y_sin) 
plt.title('Sine')  # 将第二个 subplot 激活,并绘制第二个图像
plt.subplot(2,  1,  2) 
plt.plot(x, y_cos) 
plt.title('Cosine')  # 展示图像
plt.show()

在这里插入图片描述
6.绘制三锥图形

import numpy as np 
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d


x,y=np.mgrid[-2:2:20j,-2:2:20j]
z=50*np.sin(x+y)
ax=plt.subplot(111,projection='3d')
ax.plot_surface(x,y,z,rstride=2,cstride=1,cmap=plt.cm.Blues_r)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()

在这里插入图片描述

import numpy as np 
import matplotlib.pyplot as plt
import mpl_toolkits.mplot3d


rho,theta=np.mgrid[0:1:40j,0:2*np.pi:40j]
z=rho*2
x=rho*np.cos(theta)
y=rho*np.sin(theta)


ax=plt.subplot(111,projection='3d')
ax.plot_surface(x,y,z)


plt.show()

在这里插入图片描述
7.绘制三锥曲线

import matplotlib as mpl
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt


mpl.rcParams['legend.fontsize']=10
fig=plt.figure()
ax=fig.gca(projection='3d')
theta=np.linspace(-4*np.pi,4*np.pi,100)
z=np.linspace(-4,4,100)*0.3
r=z**3+1
x=r*np.sin(theta)
y=r*np.cos(theta)
ax.plot(x,y,z,label='parametric curve')
ax.legend()
plt.show()

在这里插入图片描述
8.柱状图

from matplotlib import pyplot as plt 
x =  [5,8,10] 
y =  [12,16,6] 
x2 =  [6,9,11] 
y2 =  [6,15,7] 
plt.bar(x, y, align =  'center') 
plt.bar(x2, y2, color =  'g', align =  'center') 
plt.title('Bar graph') 
plt.ylabel('Y axis') 
plt.xlabel('X axis') 
plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值