数据处理之Matplotlib

实验二、数据处理之Matplotlib

一、实验目的

1. 了解matplotlib库的基本功能

2. 掌握matplotlib库的使用方法

二、实验工具:

1. Anaconda

2. Numpy,matplotlib

三、Matplotlib简介

Matplotlib 包含了几十个不同的模块, 如 matlab、mathtext、finance、dates 等,而 pylot 则是我们最常用的绘图模块

四、实验内容

1.绘制正弦曲线,并设置标题、坐标轴名称、坐标轴范围

2.同一坐标系中绘制多种曲线并通过样式、宽度、颜色加以区分

3.绘制多轴图,即将多幅子图绘制在同一画板。

4.直方图的绘制(数据自己定义)

5.绘制散点图

6.绘制盒状图

7.选做题(尝试matplotlib库的其它功能,如2D,3D等)

五、实验总结(写出本次实验的收获,遇到的问题等)

本次实验熟悉了Matplotlib的使用和常见图形绘制方法,Matplotlib 包含了几十个不同的模块, 如 matlab、mathtext、finance、dates 等,而 pylot 则是我们最常用的绘图模块。
在实验过程中,绘制盒状图时遇到了问题,对于盒图的参数设置和boxplot方法的应用都很陌生,导致出现了多次错误。

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()
多条曲线文本标注和图例
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='upper left')
plt.show()
绘制多轴图
plt.subplot(221)
plt.axis([-1,2,-1,2])
plt.axhline(y=0.5,color='b')
plt.axhline(y=0.5,xmin=0.25,xmax=0.75,color='r')
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)
plt.axis([-1,2,-1,2])
plt.axvspan(1.25,1.55,facecolor='g',alpha=0.5)
plt.axvspan(0.25,0.75,facecolor='0.5',alpha=0.5)
data=np.random.normal(5.0,3.0,1000)
plt.hist(data)
bins=np.arange(-5,16,1)
plt.hist(data,bins)
plt.show()
散点图
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()
3d
x, y = np.mgrid[-2:2:50j, -2:2:50j]
z = x * np.exp(-x ** 2 - y ** 2)
ax = plt.subplot(111, projection='3d')
ax.plot_surface(x, y, z, rstride=2, cstride=1,cmap=plt.cm.coolwarm,alpha=0.8)
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
plt.show()
盒图
all_data = [np.random.normal(0, std, 100) for std in range(1, 4)]

fig = plt.figure(figsize=(8, 6))

plt.boxplot(all_data,
            notch=False,  # box instead of notch shape
            sym='rs',  # red squares for outliers
            vert=True)  # vertical box aligmnent

plt.xticks([y + 1 for y in range(len(all_data))], ['x1', 'x2', 'x3'])
plt.xlabel('measurement x')
t = plt.title('Box plot')
plt.show()

你可能感兴趣的:(数据处理之Matplotlib)