【Matplotlib学习笔记(学习地址:阿里云Python学习路线 - 阶段3)】

1、什么是Matplotlib:

(1)Matplotlib:
         mat - matrix(矩阵)
         plot - 画图
         lib - library 库

(2)专门用于开发2D图表(包括3D图表);

(3)使用起来极其简单;

(4)以渐进、交互式方式实现数据可视化

2、画图:

(1)简单尝试绘制一幅图:

import matplotlib.pyplot as plt #导包
%matplotlib inline 

plt.figure() #创建画布
plt.plot([1,0,9],[4,5,6]) #传入横、纵坐标,连线
plt.show()

(2)matplotlib图像结构:

3、Matplotlib三层结构(容器层、辅助显示层、图像层)

(1)容器层Canvas

         1)画板层Figure

         2)画布层

         3)绘图区 / 坐标系

                x 、y轴张成的区域

             (2)辅助显示层(图例、网格这些的东西)

             (3)图像层(就是图表)

容器层:

辅助显示层:

图像层:

图像层指Axes内通过plot、scatter、bar、histogram、pie等函数根据数据绘制出的图像。

4、折线图绘制与保存图片

(1)matplotlib.pyplot模块

import matplotlib.pyplot as plt

 matplotlib.pyplot包含了一系列类似于matlab的画图函数。它的函数作用于当前图形(figure)的当前坐标系(axes)。

(2)折线图绘制与显示

展示上海一周的天气:

# 1、创建画布(容器层)
plt.figure()
# 2、绘制折线图(图像层)
plt.plot([1,2,3,4,5,6,7] , [17,17,18,15,11,11,13])
# 3、显示图像
plt.show()

(3)设置画布属性与图片保存

plt.figure(figsize=(), dpi=)
    figsize:指定图的长宽
    dpi:图像的清晰度
    返回fig对象
plt.savefig(path)
# 1、创建画布(容器层)
plt.figure(figsize=(20,8), dpi=80)
# 2、绘制折线图(图像层)
plt.plot([1,2,3,4,5,6,7] , [17,17,18,15,11,11,13])
# 3、显示图像
plt.show()

注意:要先保存图像、再显示图像

 (4)完善原始折线图1(辅助显示层)

1)原始图像:

需求:画出某城市11点到12点 1h内 每分钟的温度变化折线图,温度范围再15° - 18°

原始代码及图像:

# 1、准备数据 x、y
import random
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]

# 2、创建画布
plt.figure(figsize=(10,8),dpi=80)

# 3、绘制图像
plt.plot(x,y_shanghai)

# 4、显示图像
plt.show()

2)添加自定义x、y刻度

# 1、准备数据 x、y
import random
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]

# 2、创建画布
plt.figure(figsize=(10,8),dpi=80)

# 3、绘制图像
plt.plot(x,y_shanghai)

# 修改x、y刻度
# 准备x的刻度说明
x_lable = ['11.{}'.format(i) for i in x]
plt.xticks(x[::5], x_lable[::5])
plt.yticks(range(0,40,5))

# 4、显示图像
plt.show()

3)添加网格显示 

 

plt.grid(True, linestyle='--', alpha=0.5)

True : 是否添加网格(是)

linestyle : 线条风格

alpha :透明度

4)添加描述信息(x轴、y轴描述信息 及 标题)

plt.xlabel('time')
plt.ylabel('temperature')
plt.title('Temperature variation diagram')
# 1、准备数据 x、y
import random
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]

# 2、创建画布
plt.figure(figsize=(10,8),dpi=80)

# 3、绘制图像
plt.plot(x,y_shanghai)

# 修改x、y刻度
# 准备x的刻度说明
x_lable = ['11.{}'.format(i) for i in x]
plt.xticks(x[::5], x_lable[::5])
plt.yticks(range(0,40,5))

# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)

# 添加描述信息
plt.xlabel('time')
plt.ylabel('temperature')
plt.title('Temperature variation diagram')

# 4、显示图像
plt.show()

(5)完善原始折线图2(图像层) 【再添加一个城市的温度变化】

1)图形风格:

2)图例位置:

plt.legend(loc = 'best')

3)修改代码如下:

import random
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]

# 2、创建画布
plt.figure(figsize=(10,8),dpi=80)

# 3、绘制图像
plt.plot(x,y_shanghai, color = 'r' , linestyle = '--' , label = 'shanghai')
plt.plot(x,y_beijing , color = 'b' , label = 'beijing')

# 显示图例
plt.legend()

# 修改x、y刻度
# 准备x的刻度说明
x_lable = ['11.{}'.format(i) for i in x]
plt.xticks(x[::5], x_lable[::5])
plt.yticks(range(0,40,5))

# 添加网格显示
plt.grid(True, linestyle='--', alpha=0.5)

# 添加描述信息
plt.xlabel('time')
plt.ylabel('temperature')
plt.title('Temperature variation diagram')

# 4、显示图像
plt.show()

(6)多个坐标系显示-plt.subplots(面向对象的画图方法) 

import random
x = range(60)
y_shanghai = [random.uniform(15,18) for i in x]
y_beijing = [random.uniform(1,3) for i in x]

# 2、创建画布
# plt.figure(figsize=(10,8),dpi=80)
figure , axes = plt.subplots(nrows=1,ncols=2,figsize=(10,8),dpi=80)

# 3、绘制图像
axes[0].plot(x,y_shanghai, color = 'r' , linestyle = '--' , label = 'shanghai')
axes[1].plot(x,y_beijing , color = 'b' , label = 'beijing')

# 显示图例
axes[0].legend()
axes[1].legend()

# 修改x、y刻度
# 准备x的刻度说明
x_label = ['11.{}'.format(i) for i in x]
axes[0].set_xticks(x[::5])
axes[0].set_xticklabels(x_label[::5])
axes[0].set_yticks(range(0,40,5))
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_label[::5])
axes[1].set_yticks(range(0,40,5))

# 添加网格显示
axes[0].grid(True, linestyle='--', alpha=0.5)
axes[1].grid(True, linestyle='--', alpha=0.5)

# 添加描述信息
axes[0].set_xlabel('time')
axes[0].set_ylabel('temperature')
axes[0].set_title('Temperature variation diagram of shanghai')
axes[1].set_xlabel('time')
axes[1].set_ylabel('temperature')
axes[1].set_title('Temperature variation diagram of beijing')

# 4、显示图像
plt.show()

(7)折线图的应用场景

某事物、某指标随时间的变化状况;也可以画数学函数图像

5、散点图(scatter)

(1)散点图应用场景

判断变量之间是否存在数量关联趋势,展示离群点(分布规律)

(2)散点图绘制

# 1、准备数据
x = [1,2,3,4,5,6,7,8,9,10]
y = [10,9,8,7,6,5,4,3,2,1]
# 2、创建画布
plt.figure(figsize=(20,8),dpi=80)
# 3、绘制图形
plt.scatter(x,y)
# 4、显示图像
plt.show()

 

6、柱状图(bar)

(1)柱状图应用场景

绘制离散的数据,能一眼看出各个数据的大小,比较数据之间的差别。(统计/对比)

(2)柱状图绘制

1)单纯的统计:

 

# 1、准备数据
name = ['AAA' , 'BBB' , 'CCC' , 'DDD' , 'EEE']
nums = [123 , 136 , 129 , 101 , 121]

# 2、创建画布
plt.figure(figsize=(20,8),dpi=80)

# 3、绘制柱状图
x_ticks = range(len(name))
plt.bar(x_ticks,nums,color=['b','r','g','c','m'])

# 修改x刻度
plt.xticks(x_ticks,name)

# 添加标题
plt.title('Film revenue')

# 添加网格
plt.grid(linestyle='--',alpha=0.5)

# 4、显示图像
plt.show()

2)对比:

# 1、准备数据
movie_name = ['AAA' , 'BBB' , 'CCC']

first_day = [10000,15000,20000]
first_weekend = [30000,35000,40000]

# 2、创建画布
plt.figure(figsize=(20,8),dpi=80)

# 3、绘制柱状图
plt.bar(range(3),first_day,width=0.2,label='首日票房')
plt.bar([0.2,1.2,2.2],first_weekend,width=0.2,label='首周票房')

# 显示图例
plt.legend()

# 4、修改刻度
plt.xticks([0.1,1.1,2.1],movie_name)

# 4、显示图像
plt.show()

 

7、直方图(histogram)

(1)直方图应用场景

绘制连续性的数据展示一组或者多组数据的分布情况。(统计)

(2)相关概念

组数:在统计数据时,我们把数据按照不同的范围分成几个组,分成的组的个数称为组数;

组距:每一组两个端点的差;

直方图是连着的,柱状图是分开的;

直方图展示数据的分布,柱状图比较数据的大小;

直方图x轴位定量数据,柱状图x轴为分类数据;

直方图柱子宽度可不一,柱状图柱子宽度必须一致;

(3)直方图绘制

组数 = 极差 // 组距

 y轴的变量,可以是频数,也可以是频率

plt.hist(time,bins=group_num,density=True)
# 需求:电影时长分布状况
# 1、准备数据
time = [131,98,125,131,124,139,131,117,128,108 ]

# 2、创建画布
plt.figure(figsize=(20,8),dpi=80)

# 3、绘制直方图
distance = 2
group_num = (max(time) - min(time)) // distance
plt.hist(time,bins=group_num)

# 修改x轴刻度
plt.xticks(range(min(time),max(time),distance))

# 添加网格
plt.grid(linestyle='--',alpha=0.5)

# 4、显示图像
plt.show()

 

 

8、饼图(pie)

(1)饼图应用场景

分类数据的占比情况。(占比)

(2)绘制饼图

 

 

# 1、准备数据
movie_name = ['A','B','C','D']
place_count = [10,20,30,40]

# 2、创建画布
plt.figure(figsize=(20,8),dpi=80)

# 3、绘制饼图
plt.pie(place_count,labels=movie_name,colors = ['r','m','b','g'],autopct='%1.2f%%')

# 显示图例
plt.legend()

plt.axis('equal')

# 4、显示图像
plt.show()

 

9、总结

 

 

  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python学习笔记》是由皮大庆编写的一本关于Python语言学习的教材。在这本书中,作者详细介绍了Python语言的基础知识、语法规则以及常用的编程技巧。 首先,作者简要介绍了Python语言的特点和优势。他提到,Python是一种易于学习和使用的编程语言,受到了广大程序员的喜爱。Python具有简洁、清晰的语法结构,使得代码可读性极高,同时也提供了丰富的库和模块,能够快速实现各种功能。 接着,作者详细讲解了Python的基本语法。他从变量、数据类型、运算符等基础知识开始,逐步介绍了条件语句、循环控制、函数、模块等高级概念。同时,作者通过大量的示例代码和实践案例,帮助读者加深对Python编程的理解和应用。 在书中,作者还特别强调了编写规范和良好的编程习惯。他从命名规范、注释风格、代码缩进等方面指导读者如何写出清晰、可读性强的Python代码。作者认为,良好的编程习惯对于提高代码质量和提高工作效率非常重要。 此外,作者还介绍了Python的常用库和模块。他提到了一些常用的库,如Numpy、Pandas、Matplotlib等。这些库在数据处理、科学计算、可视化等领域有广泛的应用,帮助读者更好地解决实际问题。 总的来说,《Python学习笔记》是一本非常实用和全面的Python学习教材。通过学习这本书,读者可以系统地学习和掌握Python编程的基础知识和高级应用技巧,为以后的编程学习和工作打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不错就是对

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值