第八章 使用matplotlib绘制高级图表
这节课主要学习了如何使用matplotlib绘制一些高级的图表,还介绍了这些高级图表的一些特点和一些基本函数,主要学习了一些高线图、矢量磁场流线图、棉棒图、哑铃图、甘特图、人口金字塔图、漏斗图、桑基图、树状图、华夫饼图等等。
接下来是课堂上练习的一些实例图形:
import numpy as np
import matplotlib.pyplot as plt
def calcu_elevation(x1,y1):
h=(1-x1/2+x1*5+y1**3)*np.exp(-x1**2-y1**2)
return h
n=256
x=np.linspace(-2,2,n)
y=np.linspace(-2,2,n)
x_grid,y_grid=np.meshgrid(x,y)
fig=plt.figure()
ax=fig.add_subplot(111)
con=ax.contour(x_grid,y_grid,calcu_elevation(x_grid,y_grid),8,colors='black')
ax.contourf(x_grid,y_grid,calcu_elevation(x_grid,y_grid),8,alpha=0.75,cmap=plt.cm.copper)
ax.clabel(con,inline=True,fmt='%1.1f',fontsize=10)
ax.set_xticks([])
ax.set_yticks([])
plt.title("陈明江48")
plt.show()
import numpy as np
import matplotlib.pyplot as plt
y,x=np.mgrid[0:5:50j,0:5:50j]
u=x
v=y
fig=plt.figure()
ax=fig.add_subplot(111)
ax.streamplot(x,y,u,v)
plt.title("陈明江48")
plt.show()
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family']='simHei'
plt.rcParams['axes.unicode_minus']=False
x = np.arange(1, 16)
y = np.array([5.9, 6.2,6.7,7.0,7.0,7.1,7.2,7.4,
7.5,7.6,7.7,7.7,7.7,7.8,7.91])
labels = np.array(['宝骏310','宝马i3','致享','焕驰',' 力帆530',
'派力奥','悦翔v3','乐风RV',' 奥迪A1','威驰ES','夏利N7','启辰R30','和悦A13RS','1致炫5','赛欧'])
fig = plt.figure(figsize=(10, 6),dpi= 80)
ax = fig.add_subplot(111)
markerline,stemlines,baseline = ax.stem(x,y,linefmt='--',
markerfmt='o'