麦子学院视频教程笔记
函数积分图
style.use()
调用patplotlib的风格np.linspace
的num默认参数为50figtext
用这个 给fig添加文本
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
def func(x):
return -(x-2)*(x-8)+40
x = np.linspace(0,10,)
y = func(x)
fig,ax = plt.subplots()
plt.plot(x,y,linewidth=2,color='r')
plt.style.use('ggplot')
a=2
b=9
ax.set_xticks([a,b])
ax.set_yticks([])
ax.set_xticklabels([r'$a$',r'$b$',])
plt.figtext(0.9,0.1,r'$x$')
plt.figtext(0.1,0.9,'y')
ix = np.linspace(a,b)
iy = func(ix)
ixy = zip(ix,iy)
verts = [(a,0)]+list(ixy)+[(b,0)]
poly = Polygon(verts,facecolor='0.8',edgecolor='0.1')
ax.add_patch(poly)
y_math=35
plt.text(x_math,y_math,r'$\int_a^b (-(x-2)*(x-8)+40) dx $',fontsize=15,horizontalalignment='center')
plt.show()
散点条形图
plt.axes(rect_y)
利用坐标位置生成子图
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
sty = plt.style.available[5]
print(sty)
plt.style.use(sty)
x = np.random.randn(200)
y = x+np.random.randn(200)*0.5
margin_border = 0.1
width = 0.6
margin_between = 0.2
height = 0.4
left_s = margin_border
bottom_s = margin_border
height_s = width
width_s = width
left_x = margin_border
bottom_x = margin_border+width+margin_between
height_x = height
width_x = width
left_y = margin_border+width+margin_between
bottom_y = margin_border
height_y = width
width_y = height
fig1 = plt.figure(1,figsize=(8,8))
rect_s = [left_s,bottom_s,width_s,height_s]
rect_x = [left_x,bottom_x,width_x,height_x]
rect_y = [left_y,bottom_y,width_y,height_y]
axScatter = plt.axes(rect_s)
axHistX = plt.axes(rect_x)
axHistY = plt.axes(rect_y)
axHistX.set_xticks([])
axHistY.set_yticks([])
axScatter.scatter(x,y)
bin_width = 0.25
xymax = np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])
lim = int(xymax/bin_width+1)*bin_width
axScatter.set_xlim(-lim,lim)
axScatter.set_ylim(-lim,lim)
bins = np.arange(-lim,lim+bin_width,bin_width)
axHistX.hist(x,bins=bins)
axHistY.hist(y,bins = bins,orientation='horizontal')
axHistX.set_xlim(axScatter.get_xlim())
axHistY.set_ylim(axScatter.get_ylim())
plt.show()
ggplot
雷达图
- 注意字体的问题,这里就不找了,
- 1是要在开头添加格式,2是在中文前加u,表示unicode格式3要显式指定字体
import numpy as np
import matplotlib.pyplot as plt
plt.style.use('ggplot')
ax1 = plt.subplot(221,projection='polar')
ax2 = plt.subplot(222,projection='polar')
ax3 = plt.subplot(223,projection='polar')
ax4 = plt.subplot(224,projection='polar')
ability_label=[u'甲',u'乙','C','D','E','F']
ability_size = 6
player = {
'1':np.random.randint(size=ability_size,low=60,high=99),
'2':np.random.randint(size=ability_size,low=60,high=99),
'3':np.random.randint(size=ability_size,low=60,high=99),
'4':np.random.randint(size=ability_size,low=60,high=99),
}
for i in player.keys():
player[i] = np.append(player[i],player[i][0])
theta = np.linspace(0,2*np.pi,6,endpoint=False)
theta = np.append(theta,theta[0])
ax1.plot(theta,player['1'],'r')
ax1.fill(theta,player['1'],'g',alpha=0.5)
ax1.set_xticks(theta)
ax1.set_xticklabels(ability_label,)
ax1.set_title('player 1 ',color = [0,1,0])
ax1.set_yticks([20,40,60,80,100])
plt.show()