第一部分:实际应用作图
一.函数积分图
函数:y = -(x-2)*(x-8)+40
# object-oriented面向对象方式
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
import numpy as np
def func(x):
return -(x-2)*(x-8)+40
x = np.linspace(0,10)
y = func(x)
fig = plt.figure()
ax = fig.add_subplot(111)
# 设置x轴标记点和名称
ax.set_xticks([2,9])
ax.set_xticklabels(['a=2','b=9'])
# 设置x轴和y轴标签,参数分别为占x轴比例、占y轴比例,标签
plt.figtext(0.9,0.07,'$x$')
plt.figtext(0.12,0.9,'$y$')
# 用多边形ploygon的方法画出积分面积,a=2,b=9
# 找出多边形一周的顶点
verts = [(2,0)] + list(zip(np.linspace(2,9),func(np.linspace(2,9))))+[(9,0)]
polygon = mpatches.Polygon(verts,facecolor='0.9',edgecolor='0.5')
ax.plot(x,y,'r',linewidth=2)
ax.add_patch(polygon)
ax.text(2.5,30,r'$ \int_a^b(-(x-2)*(x-8)+40) dx $',fontsize=13)
plt.show()
二.散点-条形图
对于不同大小的子图,不能使用figure.add_subplot(),应该使用figure.add_axes([left,bottom,width,height])
# object-oriented面向对象方式
import matplotlib.pyplot as plt
import numpy as np
plt.style.use('ggplot')
# 设置边界、间隔、高、宽所占figure的比例
border = 0.1
between = 0.05
height = 0.2
width = 0.6
# 生成数据
x = np.random.normal(loc=0,scale=1.5,size=200)
y = -x + np