文章目录
前言
数据分析不仅是Python数据科学的基础,还是机器学习课程的基础
一、matplotlib是什么?
matplotlib 是一个用于创建静态、动态、以及交互式可视化的综合库,能够生成各种类型的图表。
二、使用步骤
1.引入库
代码如下:
import matplotlib.pyplot as plt
import matplotlib
2.绘制折线图
代码如下:
plt.plot(x,y) #转入x和y,通过plot绘制折线图
plt.show() #展示图形

3.调整坐标轴刻度
代码如下:
plt.xticks()
plt.yticks()
4.保存图片
代码如下:
plt.savefig("名称.png") #也认可保存为.svg格式
5.显示中文(Windows)
Mac和Linux系统和以下方法不同
代码如下:
font={
'family' : 'SimHei', #也可以使用"Microsoft YaHei"和"SimSun"
'weight' : 'bold',
'size' : '14'}
matplotlib.rc('font', **font) #不会使用可以Ctrl+B查看源代码
6.添加描述信息
代码如下:
plt.xlabel('') #x axis
plt.ylabel('') #y axis
plt.title('') #标题
7.自定义风格
代码如下:
plt.figure(figsize=(15 ,5),dpi=80) #图片大小和dpi
plt.grid(alpha=0.4) #绘制网格,alpha为透明图
plt.legend() #添加图例,改变图例位置 loc="best"(默认)
plt.plot(x,y,label,color,linestyle,linewidth) #折线颜色,风格和宽度
8.绘制散点图
技术要点代码如下:
plt.scatter(x,y)
实例代码如下(3月和10月每日最高温度):
import matplotlib.pyplot as plt
import matplotlib
#显示中文
font={
'family' : 'SimHei',
'weight' : 'bold',
'size' : '14'}
matplotlib.rc('font', **font)
y_3=[11,17,16,11,12,11,12,6,6,7,8,9,12,15,14,17,18,21,16,17,20,14,15,15,15,19,21,22,22,22,23]
y_10=[26,26,28,19,21,17,16,19,18,20,20,19,22,23,17,20,21,20,22,15,11,15,5,13,17,10,11,13,12,13,6]
x_3=[f"3月{i}日" for i in range(1,32)]
x_10=[f"10月{i}日" for i in range(1,32)]
plt.figure(figsize=(30,15),dpi=80)
plt.scatter(x_3,y_3,label='3月')
plt.scatter(x_10,y_10,label='10月')
plt.xticks(rotation=270)
plt.yticks(range(min(y_3+y_10),max(y_3+y_10)+1))
plt.legend()
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('3月和10月每日最高温度')
plt.show()

9.绘制条形图
技术要点代码如下:
plt.bar(x,y,width=0.2,color="") #竖着的条形图,width表示条形宽度,默认为0.8,颜色默认为蓝色
plt.barh(x,y,height=0.2) #横着的条形图
实例代码如下(全球女歌手巡演票房前五名):
import matplotlib.pyplot as plt
import matplotlib
#显示中文
font={
'family' : 'SimHei',
'weight' : 'bold',
'size' : '14'}
matplotlib.rc('font', **font)
x=['泰勒·斯威夫特(Taylor Swift)','P!nk','碧昂丝(Beyoncé)','邓紫棋(G.E.M.)','麦当娜(Madonna)']
y=[20.7,5.84,5.79,4.24,4.07]
plt.figure(figsize=(25,8),dpi=80)
plt.barh(x,y,height=0.8,color=['#1f77b4','#1f77b4','#1f77b4','#800080','#1f77b4'])
#在条形上显示数值
for i, (name, value) in enumerate(zip(x, y)):
plt.text(value + 0.1, i, f'{value}亿美元',
va='center', ha='left', fontsize=11, fontweight='bold')
plt.xticks(list(range(26))[::5])
plt.xlabel('票房(亿美元)')
plt.ylabel('歌手',rotation=0)
plt.title('全球女歌手巡演票房前五名')
plt.savefig('yuntng.png')
plt.show()

10.绘制直方图
技术要点代码如下:
#有真实数据时使用hist。如果原始数据丢失,只有统计数据则使用bar
plt.hist(x,bins) #频数直方图
plt.hist(x,bins,normed=Ture) #频率直方图
实例代码如下(电影时长):
import matplotlib.pyplot as plt
import matplotlib
#显示中文
font={
'family' : 'SimHei',
'weight' : 'bold',
'size' : '14'}
matplotlib.rc('font', **font)
a=[131,98,125,131,124, 139, 131,117,128,108,135,138,131,102,107,114,119,128,121, 142,127,130,124,101,110,116,117,110,128,128,115,99,136,126,134,95,138,117,111,78,132,124,113,150,110,117,86,95,144,105,126,130,126,130,126,116,123,106,112,138,123,86,101,99,136,123,117,119,105,137,123,128,125,104,109,134,125,127,105,120,107,129,116,108,132,103,136,118,102,120,114,105,115,132,145,119,121,112,139,125,138,109,132,134,156,106,117,127,144,139,139,119,140,83,110,102,123,107,143,115,136,118,139,123,112,118,125,109,119,133,112,114,122,109,106,123,116,131,127,115,118,112,135,115,146,137,116,103,144,83,123,111,110,111,100,154,136,100,118,119,133,134,106,129,126,110,111,109,141,120,117,106,149,122,122,110,118,127,121,114,125,126,114,140,103,130,141,117,106,114,121,114,133,137,92,121,112,146,97,137,105,98,117,112,81,97,139,113,134,106,144,110,137,137,111,104,117,100,111,101,110,105,129,137,112,120,113,133,112,83,94,146,133,101,131,116,111,84,137,115,122,106,144,109,123,116,111,111,133,150]
d=3 #组距(若数据极差不能被组距整除,可改用numpy的arange更精确划分区间)
bins=(max(a)-min(a)) //d #组数
plt.figure(figsize=(20,8))
plt.hist(a,bins)
plt.xticks(range(min(a),max(a)+d,d))
plt.grid()
plt.savefig('yuntng.png')
plt.show()

11.绘制饼图
饼图核心函数是plt.pie(),需传入数值数据和标签
总结
以上就是matplotlib的内容,本文仅仅简单介绍了matplotlib的使用,而matplotlib是 Python 的核心可视化库,兼具易用性和高度定制化能力;采用分层架构,支持pyplot快捷模式和面向对象定制模式;广泛应用于数据可视化、科研绘图等场景,能生成高质量的各类图表。

被折叠的 条评论
为什么被折叠?



