matplotlib—画图

本文介绍了使用Matplotlib绘制多种图表的方法,包括折线图、条形图、直方图、饼图、散点图和堆叠图等。通过具体实例展示了如何设置图表样式及参数,适合初学者快速上手。

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

一.画图方法

• 画一个折线图:plt.plot()
• 画一个条形图:plt.bar()
• 画一个直方图:plt. hist()
• 画一个饼图:plt. pie()
• 画一个堆叠图:plt. stackplot()
1.导入模块

import matplotlib.pyplot as plt           # from matplotlib import pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']# 用于正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  # 用来正常显示负号

2.开始画图

plt.figure(figsize=(8,4))#创建画板
# 在画板上绘制两条折线图
plt.plot([1,2,3,4],[4,7,10,15],label="第一条折线") #label是图表的小图标
plt.plot([2,4,5,9],[10,14,15,16],label="第二条折线")

# 添加X,Y轴标签
plt.xlabel('X轴')
plt.ylabel('Y轴')

# 为图表添加标题
plt.title('为图表添加标题')

# 为图表添加小图标
plt.legend(loc='lower right') #指定小图标的位置,upper上方,lower下方

这里写图片描述

二.绘制常见的图表

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

1.折线图,plt.plot

x = [1,2,3,4,5,6,7,8] 
y = [5,2,4,2,1,4,5,2]
plt.plot(x,y,label='折线图')   #添加小图标

plt.xlabel('X')
plt.ylabel('Y')               #添加X,Y轴标签

plt.legend(loc='lower right') #指定小图标位置,右下方

这里写图片描述
2.柱状图,plt.bar

x1,y1=[1,3,5,7,9],[5,2,7,8,2]
x2,y2=[2,4,6,8,10],[8,6,2,5,6]
plt.bar(x1,y1,label='柱状图-01',color='r')   #color指定线条颜色
plt.bar(x2,y2,label="柱状图-02",color='g')
plt.title('绘制柱状图')
plt.xlabel('样本值')
plt.ylabel('样本数')
plt.legend()

这里写图片描述
3.条形图,plt.barh

x1,y1=[1,3,5,7,9],[5,2,7,8,2]
x2,y2=[2,4,6,8,10],[8,6,2,5,6]
plt.barh(x1,y1,label='条形图-01',color='#123456')
plt.barh(x2,y2,label="条形图-02",color='#0000CC')
plt.legend()

这里写图片描述

4.直方图,plt.hist

#绘制频率分布直方图

# 年龄样本
population_ages =[22,55,62,45,21,22,34,42,42,4,99,102,110,120,
                  121,122,130,111,115,112,80,75,65,54,44,43,42,48]

# 划分区间
bins =[0,10,20,30,40,50,60,70,80,90,100,110,120,130]

# 画图
plt.hist(population_ages, bins, histtype='bar',label='年龄分布情况')

plt.xlabel('年龄区间')
plt.ylabel('人数')
plt.legend()
plt.title('年龄分布直方图')

这里写图片描述
5.画饼图,plt.pie

audience=[2,5,10,3]                # 随机抽取20个人采访,是否关注世界杯
colors=['c','m','r','b']           # 定义饼图每个扇形区域的填充颜色
types=['少年','青年','中年','老年']  # 定义扇形区域标签

plt.pie(audience,                  #数据
        labels=types,              #扇形区域标注
        startangle=90,             #开始绘制扇形区域的角度
        explode=(0,0.2,0,0),       #突出显示某一块扇形区域
        shadow=True,               #是否显示阴影
        colors=colors,             #扇形区域颜色
       autopct='%1.1f%%')          #扇形区域

plt.title('关注世界杯观众的年龄分布情况')

这里写图片描述
6.绘制散点图

x=[1,2,3,4,5,6,7,8]
y=[5,2,4,2,1,4,5,2]

plt.scatter(x,y,label='skitscat',color='k',s=20,marker="o")
   '''
x,y:        数据点的x,y轴
label:      图例的注释
color:      散点图点的颜色
s:          散点图点的大小
marker:     散点图点的形状
   '''
plt.xlabel('x')
plt.ylabel('y')
plt.title('散点图')
plt.xticks(range(9))          #设置x,y轴刻度,保持图表美观
plt.yticks([0,0.5,1.0,1.5,2.0,2.5,3.0,3.5,4.0,4.5,5])
plt.legend()
plt.show()

这里写图片描述
7.绘制堆叠图

days=[1,2,3,4,5]
sleeping=[7,8,6,11,7]
eating=[2,3,4,3,2]
working=[7,8,7,2,2]
playing=[8,5,7,8,13]
plt.stackplot(days, #时间轴
              sleeping,eating,working,playing, #堆叠图数据
              colors=['m','c','r','k'])        #颜色

#为堆叠图加上图例
plt.plot([],[],color='m',label='sleeping',linewidth=5)
plt.plot([],[],color='c',label='eating',linewidth=5)
plt.plot([],[],color='r',label='working',linewidth=5)
plt.plot([],[],color='k',label='playing',linewidth=5)

plt.xlabel('星期')
plt.ylabel('花费时间')
plt.title('堆叠图')

# 显示图表
plt.legend()

这里写图片描述

三.画图重要参数知识

1.柱(条)状图的经典配置 bar/barth

这里写图片描述

2.饼状图的经典配置 pie

这里写图片描述

四.画图思维导图

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值