【Python数据可视化】Matplotlib学习笔记之pyplot(5)【END】

【Python数据可视化】Matplotlib学习笔记之pyplot(5)

        简介:Matplotlib 是一个Python的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形 。通过 Matplotlib,开发者可以仅需要几行代码,便可以生成绘图,直方图,功率谱,条形图,错误图,散点图等。

        编程环境:Python 3.8

                          pycharm 2017 

        需要安装的库:numpy,matplotlib

        实例:

'''24.函数积分图实例'''
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$'])#显示为数学公式的a,b

'''设置坐标轴名称'''
plt.figtext(0.9,0.06,'$x$',size=14)
plt.figtext(0.1,0.9,'$y$',size=14)

'''生产多边形的点'''
ix=np.linspace(a,b)
iy=func(ix)
ixy=zip(ix,iy) #把xy拼接起来
'''绘制函数下阴影'''
verts=[(a,0)]+list(ixy)+[(b,0)]
poly=Polygon(verts,facecolor='0.7',edgecolor='0.5')
ax.add_patch(poly)

'''添加函数表达式'''
x_math=(a+b)*0.5
y_math=35
plt.text(x_math,y_math,r"$ \int_a^b (-(x-2)*(x-8)+40)dx $",
         size=12,horizontalalignment='center')
'''调小y轴'''
plt.ylim(ymin=25)

plt.show()

'''25.散点条形图实例'''
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.02
height=0.2
'''主散点图画布参数'''
left_s=margin_border
bottom_s=margin_border
width_s=width
height_s=width
'''上方直方图画布参数'''
left_x=margin_border
bottom_x=margin_border+width+margin_between
width_x=width
height_x=height
'''右方直方图画布参数'''
left_y=margin_border+width+margin_between
bottom_y=margin_border
width_y=height
height_y=width
'''绘制底图'''
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,s=10)

bin_width=0.25
xymax=np.max([np.max(np.fabs(x)),np.max(np.fabs(y))])
lim=int(xymax/bin_width+2)*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,color='green',edgecolor='white',alpha=0.7)
axHisY.hist(y,bins=bins,color='orange',
            edgecolor='white',orientation='horizontal')
axHisX.set_xlim(axScatter.get_xlim())
axHisY.set_ylim(axScatter.get_xlim())

plt.title('Scatter and Hist')

plt.show()

'''26.球员能力雷达图'''
import numpy as np
import matplotlib.pyplot as plt

plt.style.use('ggplot')
'''显示中文和显示负号'''
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

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=['进攻','防守','盘带','速度','体力','射术']
ability_size=6

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])
player['H']=np.append(player['H'],player['H'][0])
player['P']=np.append(player['P'],player['P'][0])
player['Q']=np.append(player['Q'],player['Q'][0])

'''绘制梅西能力图'''
ax1.plot(theta,player['M'],'r',linewidth=1)
ax1.fill(theta,player['M'],'r',alpha=0.5)
ax1.set_xticks(theta)
ax1.set_xticklabels(ability_label)
ax1.set_title('梅西',color='r',position=(0.5,0.99))
ax1.set_yticks([20,40,60,80,100])

'''绘制哈维能力图'''
ax2.plot(theta,player['H'],'g',linewidth=1)
ax2.fill(theta,player['H'],'g',alpha=0.5)
ax2.set_xticks(theta)
ax2.set_xticklabels(ability_label)
ax2.set_title('哈维',color='g',position=(0.5,0.99))
ax2.set_yticks([20,40,60,80,100])

'''绘制皮克能力图'''
ax3.plot(theta,player['P'],'b',linewidth=1)
ax3.fill(theta,player['P'],'b',alpha=0.5)
ax3.set_xticks(theta)
ax3.set_xticklabels(ability_label)
ax3.set_title('皮克',color='b',position=(0.5,0.99))
ax3.set_yticks([20,40,60,80,100])

'''绘制切赫能力图'''
ax4.plot(theta,player['Q'],'y',linewidth=1)
ax4.fill(theta,player['Q'],'y',alpha=0.5)
ax4.set_xticks(theta)
ax4.set_xticklabels(ability_label)
ax4.set_title('切赫',color='y',position=(0.5,0.99))
ax4.set_yticks([20,40,60,80,100])

plt.show()

 

------------------------------------END---------------------------------------

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值