数据分析(3/3)——Matplotlib基础学习笔记
Matplotlib
折线图 plot
条形图 bar
饼图 pie
散点图 scatter
多个图表
组合图
一.折线图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
month=['1月','2月','3月','4月']
sales=[100,150,80,130]
#绘制折线图
plt.plot(month,sales,
label='产品A',
color='orange',#颜色改为橘色
linestyle='--',#用虚线
marker='o', )#加一个点号
#下面基本是所有图通用的
#添加标题
plt.title('2026销售趋势',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加坐标抽的标签
plt.xlabel('月份',fontsize=10)
plt.ylabel('销售额(万元)',fontsize=10)
#添加图例
plt.legend(loc='upper left',fontsize=10)#控制图例在左上方,具体添加什么在绘制折线图那里
#添加网格线
plt.grid(True,alpha=0.1,color='white',linestyle='--')#alpha是调整格子透明度,越大越明显;linestyle是调整格子形式,两个短杠表示虚线,一个表示实线,要靠近看才能看清区别
#plt.grid(axis='x')只有纵向格子,plt.grid(axis='y')只有横向格子
#设置y轴范围
plt.ylim(0,160)
#在每个数据点上显示数值
for x,y in zip(month,sales):
plt.text(x,y,str(y),fontsize=10)
#显示图表(必写)
plt.show()
运行结果:

二.柱状图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
subjects=['语文','数学','英语','科学']
scores=[85,92,78,88]
#绘制条形图
plt.bar(subjects,scores,
label='shushu',
color='green',
width=0.6#设置宽度
)
#添加标题
plt.title('shushu2026年成绩分布',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加坐标抽的标签
plt.xlabel('科目',fontsize=10)
plt.ylabel('分数',fontsize=10)
#添加图例
plt.legend(loc='upper right',fontsize=10)#控制图例在右上方,具体添加什么在绘制折线图那里
#添加网格线
plt.grid(axis='y',alpha=0.1,color='red',linestyle='--')#alpha是调整格子透明度,越大越明显;linestyle是调整格子形式,两个短杠表示虚线,一个表示实线,要靠近看才能看清区别
#plt.grid(axis='x')只有纵向格子,plt.grid(axis='y')只有横向格子
#设置y轴范围
plt.ylim(0,100)
#在每个数据点上显示数值
for x,y in zip(subjects,scores):
plt.text(x,y,str(y),fontsize=10)
#自动优化排版
plt.tight_layout()
#显示图表(必写)
plt.show()
运行结果:

三.条形图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
countries=['United States','China','Japan','Germany','India']
gdp=[85,92,4,23,43]
#绘制条形图,用的是bars,柱状图是bar
plt.barh(countries,gdp)
#添加标题
plt.title('各国2026年gdp分布',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加坐标抽的标签
plt.xlabel('GDP',fontsize=10)
plt.ylabel('国家',fontsize=10)
#自动优化排版
plt.tight_layout()
#显示图表(必写)
plt.show()
运行结果:

四.饼图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
thing=['学习','娱乐','运动','睡觉','其它']
times=[6,4,1,8,5]
colors=['#66b3ff','#99ff99','#ffcc99','#ff9999','#ff4499']#颜色的十六进制设定,可以上网搜自己喜欢的
#绘制饼图
plt.pie(times,labels=thing,#时间要被划分
autopct='%.1f',#自动计算百分比,要加%的话需要转义写两个%%
startangle=90,#调整初始画图的角度
colors=colors
)
#添加标题
plt.title('一天时间分布',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加图例
plt.legend(loc='upper right',fontsize=10)#控制图例在右上方
#在每个数据点上显示数值
#for x,y in zip(subjects,scores):
#plt.text(x,y,str(y),fontsize=10)
#自动优化排版
plt.tight_layout()
#显示图表(必写)
plt.show()
运行结果:

五.环形图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
thing=['学习','娱乐','运动','睡觉','其它']
times=[6,4,1,8,5]
colors=['#66b3ff','#99ff99','#ffcc99','#ff9999','#ff4499']#颜色的十六进制设定,可以上网搜自己喜欢的
#绘制环形图
plt.pie(times,labels=thing,#时间要被划分
autopct='%.1f',#自动计算百分比,要加%的话需要转义写两个%%
startangle=90,#调整初始画图的角度
colors=colors,
wedgeprops={'width':0.5},#数值越小,中间空白越大
pctdistance=0.6#设置百分比位置
)
#添加标题
plt.title('一天时间分布',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加图例
plt.legend(loc='upper right',fontsize=10)#控制图例在右上方
#在每个数据点上显示数值
#for x,y in zip(subjects,scores):
#plt.text(x,y,str(y),fontsize=10)
#自动优化排版
plt.tight_layout()
#显示图表(必写)
plt.show()
运行结果:

六.爆炸饼图
#先导入
import matplotlib.pyplot as plt
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,5))
#要绘图的数据
thing=['学习','娱乐','运动','睡觉','其它']
times=[6,4,1,8,5]
colors=['#66b3ff','#99ff99','#ffcc99','#ff9999','#ff4499']#颜色的十六进制设定,可以上网搜自己喜欢的
explode=[0.1,0,0,0,0]#将学习模块突出来,数值越大,离圆心越远
#绘制爆炸饼图
plt.pie(times,labels=thing,#时间要被划分
autopct='%.1f',#自动计算百分比,要加%的话需要转义写两个%%
startangle=90,#调整初始画图的角度
colors=colors,
explode=explode
)
#添加标题
plt.title('一天时间分布',color='blue',fontsize=20)#最后的这个参数是调节标题字体大小
#添加图例
plt.legend(loc='upper right',fontsize=10)#控制图例在右上方
#在每个数据点上显示数值
#for x,y in zip(subjects,scores):
#plt.text(x,y,str(y),fontsize=10)
#自动优化排版
plt.tight_layout()
#显示图表(必写)
plt.show()
运行结果:

七.散点图
#先导入
import matplotlib.pyplot as plt
import random
#帮助图表中中文实现
from matplotlib import rcParams
rcParams['font.family'] = ['SimHei']#rcParams['font.sans-serif'] = ['SimHei']也可以
#创建图表,设置大小
plt.figure(figsize=(10,8))
#要绘图的数据(因为散点图用随机数据能更贴合实际)
x=[]
y=[]
for i in range(1000):
tmp=random.uniform(0,10)
x.append(tmp)
tmp2=2*tmp+random.gauss(0,2)
y.append(tmp2)
#绘制散点图
plt.scatter(x,y,
color='blue',#颜色改为橘色
alpha=0.5,#设置透明度
s=20,#设置点大小
label='数据'
)
#下面基本是所有图通用的
#添加标题
plt.title('x变量与y变量的关系',color='green',fontsize=20)#最后的这个参数是调节标题字体大小
#添加坐标抽的标签
plt.xlabel('x自变量',fontsize=10)
plt.ylabel('y因变量',fontsize=10)
#添加图例
plt.legend(loc='upper left',fontsize=10)#控制图例在左上方,具体添加什么在绘制折线图那里
#添加网格线
plt.grid(True,alpha=0.1,color='white',linestyle='--')#alpha是调整格子透明度,越大越明显;linestyle是调整格子形式,两个短杠表示虚线,一个表示实线,要靠近看才能看清区别
#plt.grid(axis='x')只有纵向格子,plt.grid(axis='y')只有横向格子
#设置y轴范围
plt.ylim(0,30)
#画一个回归线也就是一个折线
plt.plot([0,10],[0,23],color='green')
#显示图表(必写)
plt.show()
运行结果:

八.多图绘制
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)