数据可视化基础(七):区域填充、形状、美化样式、极坐标
·
区域填充
对曲线下面或曲线间的区域进行填充
函数参数
- 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()

更多推荐

所有评论(0)