区域填充

对曲线下面或曲线间的区域进行填充

函数参数

  • plt.fill(x,y,‘颜色’,alpha=透明度数值)
  • ax.fill_between(x,y1,y2,where=y1y2比较,facecolor=‘填充颜色’)

代码

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.5*np.pi,200)
y1=np.sin(3*x)
y2=np.cos(3*x)
plt.plot(x,y1)
plt.plot(x,y2)

plt.fill(x,y1,'b',alpha=0.3)
plt.fill(x,y2,'r',alpha=0.3)

plt.show()

在这里插入图片描述

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0.5*np.pi,200)
y1=np.sin(3*x)
y2=np.cos(3*x)

fig=plt.figure()
ax=plt.gca()
ax.plot(x,y1,color='black')
ax.plot(x,y2,color='green')
ax.fill_between(x,y1,y2,where=y1>y2,facecolor='blue')
ax.fill_between(x,y1,y2,where=y1<y2,facecolor='red')
plt.show()

plt.show()

在这里插入图片描述

形状

生成形状类patches
import matplotlib.patches as mpatches

函数参数

add_patch

  • mpatches.Circle(圆心位置,半径)
  • mpatches.Rectangle(左下角坐标,长宽,color=‘r’)
  • mpatches.RegularPolygon(中心坐标,边数量,圆心与顶点的距离,color=‘g’)
  • mpatches.Ellipse(坐标,长直径,短直径,color=‘y’)

代码

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

fig,ax=plt.subplots()

xy1=np.array([0.2,0.2])
xy2=np.array([0.2,0.8])
xy3=np.array([0.8,0.2])
xy4=np.array([0.8,0.8])

circle=mpatches.Circle(xy1,0.06)
ax.add_patch(circle)

rect=mpatches.Rectangle(xy2,0.2,0.1,color='r')
ax.add_patch(rect)

polygon=mpatches.RegularPolygon(xy3,5,0.1,color='g')
ax.add_patch(polygon)

ellip=mpatches.Ellipse(xy4,0.4,0.2,color='y')
ax.add_patch(ellip)

plt.axis('equal')
plt.grid()
plt.show()

在这里插入图片描述

美化样式

plt.style.use(’’)

函数参数

  • dark_background
  • bmh
  • grayscale
  • ggplot
  • fivethirtyeight

代码

  • 基础·
import numpy as np
import matplotlib.pyplot as plt

fig,axes=plt.subplots(ncols=2,nrows=2)
ax1,ax2,ax3,ax4=axes.ravel()

#1
x,y=np.random.normal(size=(2,100))
ax1.plot(x,y,'o')

#2
x=np.arange(0,10)
y=np.arange(0,10)

ncolors=len(plt.rcParams['lines.color'])
print(ncolors)
shift=np.linspace(0,10,ncolors)

for s in shift:
    ax2.plot(x,y+s,'-')

#3
x=np.arange(5)
y1,y2,y3=np.random.randint(1,25,size=(3,5))
width=0.25

ax3.bar(x,y1,width)
ax3.bar(x+width,y2,width,color=plt.rcParams['lines.color'][0])
ax3.bar(x+2*width,y2,width,color=plt.rcParams['lines.color'][1])

#4
for i, color in enumerate(plt.rcParams['lines.color']):
    xy=np.random.normal(size=2)
    ax4.add_patch(plt.Circle(xy,radius=0.3,color=color))

ax4.axis('equal')
plt.show()

在这里插入图片描述

plt.style.use('ggplot')

在这里插入图片描述

plt.style.use('fivethirtyeight')

在这里插入图片描述

plt.style.use('bmh')

在这里插入图片描述

极坐标

角度、半径

函数参数

subplot(projection=‘polar’)

代码

import numpy as np
import matplotlib.pyplot as plt

r=np.arange(1,6,1)
theta=[0,np.pi/2,np.pi,3*np.pi/2,2*np.pi]

ax=plt.subplot(111,projection='polar')
ax.plot(theta,r,color='r',linewidth=3)

ax.grid(True)
plt.show()

在这里插入图片描述

更多推荐