Python绘图工具Matplotlib基础学习简记

import numpy as np
import matplotlib.pyplot as plt
import matplotlib
font1=matplotlib.font_manager.FontProperties(fname="SourceHanSansSC-Bold.otf")


'''x=np.arange(0,4*np.pi,1)
y=np.sin(x)
z=np.cos(x)
plt.bar(x,y,color='r',align='center')
plt.bar(x,z,color='g',align='center')'''


#np.histogram
#统计班级期末考试成绩分布
'''
score=np.array([30,50,55,100,66,80,99,80,88,75,0,12,13,21])#所有的得分
plt.hist(score,bins = [0,30,60,70,80,90,100])
plt.yticks([0,2,4,6,8])
plt.title('成绩分布',fontproperties=font1,fontsize=20)
plt.ylabel('得分人数',fontproperties=font1)
plt.xlabel('成绩区间',fontproperties=font1)
plt.show()'''

#plt.figure(figsize=(10,5),dpi=100)
'''x=np.arange(0,4*np.pi,0.1)
y=np.sin(x)
z=np.cos(x)
plt.plot(x,y,x,z,ls='-',c='b',lw=3)
plt.grid(c='r',ls='-.',lw=2,axis='y')
plt.show()'''


'''
x=np.linspace(0,2*np.pi,400)
y=np.sin(x**2)
fig,ax=plt.subplots()
ax.plot(x,y)

f,ax=plt.subplots(1,2,sharex=True,sharey=True)
ax[0].plot(x,y)
ax[1].scatter(x,y)


fig,axs=plt.subplots(2,2,subplot_kw=dict(projection='polar'))
axs[0][0].plot(x,y)
axs[1][1].scatter(x,y)

plt.subplots(2,2,sharex=True,sharey='all')
fig, ax = plt.subplots(num=10, clear=True)'''


#饼图

y=np.array([15,20,35,30])
plt.pie(y,
        labels=['A','B','C','D'],
        explode=(0,0.1,0,0),
        autopct='%.2f%%'
        )
plt.title('饼图',fontproperties=font1,fontsize=20)

进阶优化

plt.rcParams['font.family']=['KaiTi']#设置显示中文
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号
x=np.linspace(-np.pi,np.pi,256,endpoint=True)#x数据生成
c,s=np.cos(x),np.sin(x)#y数据生成
plt.figure(figsize=(8,6),dpi=80)#创建画布
plt.plot(x,c,linewidth=2.5,color='r',label='cosx')#绘制cos
plt.plot(x,s,linewidth=2.5,color='b',label='sinx')#绘制sin
plt.xlim(-4.0,4.0)#设置图片边界
plt.xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi]#设置x轴刻度
,[r'$-\pi$', r'$-\pi/2$', r'$0$', r'$+\pi/2$', r'$+\pi$']
)
plt.yticks([-1,0,+1],[r'$-1$', r'$0$', r'$+1$'])#设置y轴刻度
ax = plt.gca()#获取坐标轴
ax.spines['right'].set_color('none')#去掉右框颜色
ax.spines['top'].set_color('none')#去掉上框颜色

ax.xaxis.set_ticks_position('bottom')#x轴定住下方

#按数值移动,其后数字代表挪动到Y轴的刻度值
ax.spines['bottom'].set_position(('data',0))

ax.yaxis.set_ticks_position('left')#y轴定住左边

#按数值移动,其后数字代表挪动到X轴的刻度值
ax.spines['left'].set_position(('data',0))
plt.legend(loc='upper left')#添加图例
t=2*np.pi/3
plt.plot([t,t],[0,np.sin(t)],color='b',ls='--')
plt.scatter([t,],[np.sin(t),],50,color='b')
plt.annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
         xy=(t, np.sin(t)), xycoords='data',
         xytext=(+10, +30), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

plt.plot([t,t],[0,np.cos(t)],color='r',ls='--')
plt.scatter([t,],[np.cos(t)],50,color='r')

plt.annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
         xy=(t, np.cos(t)), xycoords='data',
         xytext=(-90, -50), textcoords='offset points', fontsize=16,
         arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

for label in ax.get_xticklabels() + ax.get_yticklabels():
    label.set_fontsize(16)
    label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.65 ))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值