实验二、数据处理之Matplotlib
一、实验目的
1. 了解matplotlib库的基本功能
2. 掌握matplotlib库的使用方法
二、实验工具:
1. Anaconda
2. Numpy,matplotlib
三、Matplotlib简介
Matplotlib 包含了几十个不同的模块, 如 matlab、mathtext、finance、dates 等,而 pylot 则是我们最常用的绘图模块
四、实验内容
1.绘制正弦曲线,并设置标题、坐标轴名称、坐标轴范围
代码:
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False
x=np.arange(0,2*np.pi,0.01)
y=np.sin(x)
plt.plot(x,y)
plt.title(u'正弦曲线',fontdict={'size':20})
plt.xlabel(u'弧度',fontdict={'size':16})
plt.ylabel(u'正弦值',fontdict={'size':16})
plt.axis([-0.1*np.pi,2.1*np.pi,-1.1,1.1])
plt.show()
实验结果:

2.同一坐标系中绘制多种曲线并通过样式、宽度、颜色加以区分
import numpy as np
import matplotlib.pyplot as plt
from pylab import mpl
mpl.rcParams['font.sans-serif']=['FangSong']
mpl.rcParams['axes.unicode_minus']=False
x=np.linspace(-4,4,200)
f1=np.power(10,x)
f2=np.power(np.e,x)
f3=np.power(2,x)
plt.plot(x,f1,'r',ls='-',linewidth=2,label='$10^x$')
plt.plot(x,f2,'b',ls='--',linewidth=2,label='$e^x$')
plt.plot(x,f3,'g',ls=':',linewidth=2,label='$2^x$')
plt.axis([-4,4,-0.5,8])
plt.text(1,7.5,r'$10^x$',fontsize=16)
plt.text(2.2,7.5,r'$e^x$',fontsize=16)
plt.text(3.2,7.5,r'$2^x$',fontsize=16)
plt.title('幂函数曲线',fontsize=16)
plt.legend(loc='lower right')
plt.show()

3.绘制多轴图,即将多幅子图绘制在同一画板。
import numpy as np
import matplotlib.pyplot as plt
plt.subplot(221)
x=np.arange(0,2*np.pi,0.01)
y=np.cos(x)
plt.plot(x,y)
plt.subplot(222)
plt.axis([-1,2,-1,2])
plt.axvline(x=0,ymin=0,linewidth=4,color='r')
plt.axvline(x=1.0,ymin=-0.5,ymax=0.5,linewidth=4,color='g')
plt.subplot(212)
x=np.arange(0,2*np.pi,0.01)
y=np.sin(x)
plt.plot(x,y)
plt.show()

4.直方图的绘制(数据自己定义)
import numpy as np
import matplotlib.pyplot as plt
data=np.random.normal(5.0,3.0,2000)
plt.hist(data)
bins=np.arange(-5,16,1)
plt.hist(data,bins)
plt.show()

5.绘制散点图
import numpy as np
import matplotlib.pyplot as plt
x=np.random.rand(50)
y=np.random.rand(50)
area=np.pi*(15*np.random.rand(50))**2
color=2*np.pi*np.random.rand(50)
plt.scatter(x,y,s=area,c=color,alpha=0.5,cmap=plt.cm.hsv)
plt.show()

6.绘制盒状图
import numpy as np
import matplotlib.pyplot as plt
data=np.random.randn(1000)
fig,(ax2)=plt.subplots(1,figsize=(8,4))
ax2.boxplot(data)
plt.show()

7.选做题(尝试matplotlib库的其它功能,如2D,3D等)
import numpy as np
import matplotlib.pyplot as plt
y,x=np.ogrid[-2:2:200j,-3:3:300j]
z=x*np.exp(-x**2 - y**2)
extent=[np.min(x),np.max(x),np.min(y),np.max(y)]
plt.subplot(121)
cs=plt.contour(z,10,extent=extent)
plt.clabel(cs)
plt.subplot(122)
plt.contourf(x.reshape(-1),y.reshape(-1),z,20)
plt.show()

五、实验总结(写出本次实验的收获,遇到的问题等
了解到matplotlib库不是只要你安装了numpy就有了这个库,刚开始做的时候因为没有导入matplotlib库而频频报错。在网上搜索了简易的安装matplotlib库的办法,直接在电脑cmd里面敲两行命令安装即可,不用再很繁琐的在电脑上还要配置环境变量。


本次实验详细介绍了如何使用matplotlib库进行数据可视化,包括绘制正弦曲线、多曲线图、多轴图、直方图、散点图和盒状图。通过实践,不仅了解了matplotlib的基本功能,还掌握了其使用技巧,解决了安装和导入库的问题。
4957

被折叠的 条评论
为什么被折叠?



