第八章、使用matplotlib绘制高级图表

本文详细介绍了如何使用Python的matplotlib库绘制高级图表,包括等高线图、矢量场流线图、棉棒图、哑铃图、甘特图、人口金字塔、漏斗图和桑葚图等。通过示例代码展示了各类型图表的绘制方法和参数设置,帮助读者掌握matplotlib在数据可视化中的高级应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8.1、绘制等高线图
等高线图是地形上高程相等的相邻各点所连成的闭合曲线,它会将地面上海拔高度相同的点连成环线,之后将环线垂直投影到某一水平面上,并按照一定的比例缩绘到图纸上。
在matplotlib中,pyplot可以使用contour()、contourf()函数分别绘制和填充等高线图。
X,Y:表示坐标点的网格数据
Z:表示坐标点对应的高度数据
levels:表示等高线的数量。
colors:表示不同高度的等高线颜色
cmap:表示颜色的映射表
linewidths:表示等高线的宽度
linestyle:表示等高线的线型
Axes类的对象也可以使用contour(),contourf()方法绘制和填充等高线。
示例代码如下:
import numpy as np
import matplotlib.pyplot as plt
def calcu_elevation(x1,y1):
h=(1-x1/2+x15+y13)*np.exp(-x12-y12)
return h
n=256
x=np.linspace(-1,2,n)
y=np.linspace(-1,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(‘51’)
plt.show()
在这里插入图片描述
8.2、绘制矢量场流线图
该函数常用参数含义如下:
x,y:表示间距均匀的网格数据
u,v:表示(x,y)速率的二维数组
density:表示流线的密度
arrowsize:表示箭头的大小
arrowstyle:表示箭头的类型
minlength:表示流线的最小长度
maxlength:表示流线的最大长度
Axes类的对象也可以使用streamplot()方法绘制矢量场流线图
示例代码如下:
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,density=2)
plt.title(‘51’)
plt.show()
在这里插入图片描述
8.3、绘制棉棒图
x,y:表示茎的x值和茎头的y 值
linefmt:表示茎属性的字符串
markerfmt:表示茎头属性的字符串
basefmt:表示基线属性的字符串
bottom:表示基线的y值
label:表示应用于图例的标签
use_line_collection:若设为True,则将棉棒图的所有线段存储到一个LineCollection类对象中,若设为False,则将棉棒图的所有线段存储到列表中。。
stem()函数会返回一个形如(markerline,stemline,baseline)的三元组。
示例代码如下:

import numpy as np
import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’]=‘SimHei’
plt.rcParams[‘axes.unicode_minus’]=False
x=np.arange(1,16)
y=np.array([5.9,6.2,6.7,7.0,7.1,7.1,7.4,7.5,
7.6,7.7,7.7,7.7,7.8,7.9,8.0])
labels=np.array([‘宝骏310’,‘宝马i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值