储备知识:
简单调用matplotlib.pyplot
import matplotlib.pyplot as plt
'''
matplotlib.pyplot是一个有命令风格的函数集合,它看起来和MATLAB很相似。
每一个pyplot函数都使一副图像做出些许改变,例如创建一幅图,在图中创建一个绘图区域,在绘图区域中添加一条线等等。
在matplotlib.pyplot中,各种状态通过函数调用保存起来,以便于可以随时跟踪像当前图像和绘图区域这样的东西。
绘图函数是直接作用于当前axes(matplotlib中的专有名词,图形中组成部分,不是数学中的坐标系。)
'''
plt.plot([2,3,3,4])
'''
这里我们只是为plot()命令提供了一个list或者是array,matplotlib就会假设这个序列是Y轴上的取值,
并且会自动为你生成X轴上的值。因为python中的范围是从0开始的,因此X轴就是从0开始,长度与Y的长度相同,
也就是[0,1,2,3]。
'''
plt.ylabel('height')
plt.xlabel('width')
'''
定义y轴的名字为height
'''
plt.show()
'''
展示这幅图
'''
运行结果如下:
import matplotlib.pyplot as plt
plt.plot([2,3,3,4],[2,5,6,7])
'''
[2,3,3,4]是x轴的数
[2,5,6,7]是y轴的数
合成了一个二维的折线图
'''
plt.ylabel('height')
plt.xlabel('width')
plt.show()
运行结果如下:
import numpy as np
'''
引入数组
'''
import matplotlib.pyplot as plt
# 0到5之间每隔0.2取一个数
t = np.arange(0., 5., 0.2)
# 红色的破折号,蓝色的方块,绿色的三角形
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()
图示如下:
import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t) * np.cos(2*np.pi*t)
'''
np.exp()函数是求e的x次方的值的函数。
f(t)=(cos2*pi*t)/e^t
'''
t1 = np.arange(0.0, 5.0, 0.1)
'''
定义数组1,是从0到5逐0.1取值的
'''
t2 = np.arange(0.0, 5.0, 0.001)
plt.figure("2subplot")
'''
使用plt.figure()创建画板2subplot
'''
plt.subplot(211)
'''
第一个画板的第一个子图
2行1列当前位置为1
'''
plt.plot(t1, f(t1),'bo' ,t2, f(t2),'k')
plt.subplot(212)
'''
第二个画板的第二个子图
2行1列当前位置为2
'''
plt.plot(t2, np.cos(2*np.pi*t2), 'r--')
plt.show()
如图所示:
import numpy as np
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
mu = 100
#平均分布
sigma = 15
#标准差
x = mu + sigma * np.random.randn(10000)
#num_bins = 50
'''
np.random.randn(10000)
rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
围绕10000生成的正态分布
'''
# 直方图
n, bins, patches = plt.hist(x, 50, density = 1, facecolor='b')
'''
pyplot.hist(
x, bins=10, range=None, normed=False,
weights=None, cumulative=False, bottom=None,
histtype=u’bar’, align=u’mid’, orientation=u’vertical’,
rwidth=None, log=False, color=None, label=None, stacked=False,
hold=None, **kwargs)
plt.hist(每个bin分布的数据,对应x轴,bin的个数=50,每个条状图的占比例比,默认为1,颜色为绿色)
'''
plt.xlabel('Smarts')
#x轴的名字
plt.ylabel('Probability')
#y轴的名字
plt.title('Histogram of IQ')
#图表的名字
plt.text(60, .025, r'$\mu=100,\ \sigma=15$')
#在(60,0.25)位置放一个mu=100,sigma=15
plt.axis([40, 160, 0, 0.03])
#plt.axis([a, b, c, d]) 设置x轴的范围为[a, b],y轴的范围为[c, d]
plt.grid(True)
plt.show()