Matplotlib基础学习三

 

函数积分图

散点条形图

球员能力图


 

函数积分图

import numpy as np
import matplotlib.pyplot as plt

"""
ig,ax = plt.subplots()等价于:
fig = plt.figure()
ax = fig.add_subplot(1,1,1)
fig, ax = plt.subplots(1,3),其中参数1和3分别代表子图的行数和列数,一共有 1x3 个子图像。函数返回一个figure图像和子图ax的array列表。

"""
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,'r',linewidth=2)

a=2
b=9

ax.set_xticks([a,b])
ax.set_yticks([])

ax.set_xticklabels(['$a$','$b$'])#设置标签


plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.01,0.9,'$y$')


plt.show()


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,'r',linewidth=2)

a=2
b=9

ax.set_xticks([a,b])
ax.set_yticks([])

ax.set_xticklabels(['$a$','$b$'])#设置标签



ix=np.linspace(a,b)
iy=func(ix)

ixy=zip(ix,iy)#拼接坐标对

verts=[(a,0)]+list(ixy)+[(b,0)]

#生成多边形对象 facecolor 颜色灰度数值越大越浅  edgecolor 边缘灰度

poly=Polygon(verts,facecolor='0.9',edgecolor='0.5')

ax.add_patch(poly)

plt.figtext(0.9,0.05,'$x$')
plt.figtext(0.01,0.9,'$y$')


x_math=(a+b)*0.5*0.5
y_math=30

#积分符号 \int  自动对齐horizontalignment='center'
plt.text(x_math,y_math,r'$\int_a^b(-(x-2)*(x-8)+40)dx$',fontsize=15)

plt.ylim(ymin=15)

plt.show()

散点条形图

 

import numpy as np
import  matplotlib.pyplot as plt


plt.style.use('ggplot')

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.2


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


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)
axHisX=plt.axes(rect_x)
axHisY=plt.axes(rect_y)

plt.show()

import numpy as np
import  matplotlib.pyplot as plt


plt.style.use('ggplot')

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.2


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


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)
axHisX=plt.axes(rect_x)
axHisY=plt.axes(rect_y)

#去标签

axHisX.set_xticks([])
axHisY.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)
axHisX.hist(x,bins=bins)
axHisY.hist(y,bins=bins,orientation='horizontal')

axHisX.set_xlim(axScatter.get_xlim())
axHisY.set_ylim(axScatter.get_ylim())

plt.title('Scatter and Hist')

plt.show()


球员能力图

#_*_ coding:utf-8 _*_

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

plt.style.use('ggplot')

plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号


#能力标签

ability_size=6
ability_label=['进攻','防守','盘带','速度','体力','射术']







#子图 二行二列 第一个子图  投影方式为极坐标
ax1=plt.subplot(221,projection='polar')
ax2=plt.subplot(222,projection='polar')
ax3=plt.subplot(223,projection='polar')
ax4=plt.subplot(224,projection='polar')


#生成随机值

player={
    'M':np.random.randint(size=ability_size,low=60,high=99),
    'H':np.random.randint(size=ability_size,low=60,high=99),
    'P':np.random.randint(size=ability_size,low=60,high=99),
    'Q':np.random.randint(size=ability_size,low=60,high=99),
}

#生成角度值
theta=np.linspace(0,2*np.pi,6,endpoint=False)

theta=np.append(theta,theta[0])#首尾相接

player['M']=np.append(player['M'],player['M'][0])#首尾相接 形成闭合


ax1.plot(theta,player['M'],color='r')

#填充
ax1.fill(theta,player['M'],'r',alpha=0.3)

ax1.set_xticks(theta)#分为6等份

ax1.set_xticklabels(ability_label,y=0.1)

ax1.set_title('梅西',color='r')

ax1.set_yticks([20,40,60,80,100])


player['H']=np.append(player['H'],player['H'][0])#首尾相接 形成闭合


ax2.plot(theta,player['H'],color='b')

#填充
ax2.fill(theta,player['H'],'b',alpha=0.3)

ax2.set_xticks(theta)#分为6等份

ax2.set_xticklabels(ability_label,y=0.1)

ax2.set_title('哈维',color='r')

ax2.set_yticks([20,40,60,80,100])



player['P']=np.append(player['P'],player['P'][0])#首尾相接 形成闭合


ax3.plot(theta,player['P'],color='y')

#填充
ax3.fill(theta,player['P'],'y',alpha=0.3)

ax3.set_xticks(theta)#分为6等份

ax3.set_xticklabels(ability_label,y=0.1)

ax3.set_title('皮克',color='r')
ax3.set_yticks([20,40,60,80,100])



player['Q']=np.append(player['Q'],player['Q'][0])#首尾相接 形成闭合


ax4.plot(theta,player['Q'],color='g')

#填充
ax4.fill(theta,player['Q'],'g',alpha=0.3)

ax4.set_xticks(theta)#分为6等份

ax4.set_xticklabels(ability_label,y=0.1)

ax4.set_title('切赫',color='r')
ax4.set_yticks([20,40,60,80,100])


plt.show()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值