麦子学院视频教程笔记

麦子学院视频教程笔记

函数积分图

  • style.use()调用patplotlib的风格
  • np.linspace的num默认参数为50
  • figtext用这个 给fig添加文本
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

def func(x):
    return -(x-2)*(x-8)+40

#print(plt.style.available)#

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])#面向对象的方式 设置x的ticks
ax.set_yticks([])
ax.set_xticklabels([r'$a$',r'$b$',])#面向对象的方式 设置x的ticks显示的内容

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),ixy,(b,0)]
verts = [(a,0)]+list(ixy)+[(b,0)]
poly = Polygon(verts,facecolor='0.8',edgecolor='0.1')
ax.add_patch(poly)

# 添加公式位置
#x_math=(a+b)*0.5-2
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

scatter & hist

雷达图

  • 注意字体的问题,这里就不找了,
    • 1是要在开头添加格式,2是在中文前加u,表示unicode格式3要显式指定字体
#_*_coding:utf-8_*_
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])

#print(player)
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)

#默认8等分,所以这里要调整以下,然后,还要去除角度
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()

雷达图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值