Tensorflow2.0的学习之路之——matplotlib库

Tensorflow2.0学习记录

序言:这章我们主要讲一下matplotlib库

matplotlib:绘制图标的第三方库,可以快速方便的生成高质量图表。
数据可视化能帮助我们理解和发现数据之间的关系,可以更加清晰、易懂的方式展示算法结果。

安装好了Anaconda之后,matplotlib就已经被安装好了,若没有也可使用pip安装。

导入matplotlib库中的pyplot子库

import matplotlib.pyplot as plt

figure对象

其主要参数如图:

在这里插入图片描述

简单应用一下,创建一个3*3英寸的图像,背景为蓝色。

在这里插入图片描述
plot()函数绘制空白图像,show()函数显示图象


如果想对画布进行分割区域,需要用到subplot()函数,主要参数以及分割区域的依次序号如下图:

在这里插入图片描述
前两个参数只是告诉电脑我们需要几块区域,真正在区域创建图像需要用到第三个参数。


我们也可以对图像添加标题,可以添加主标题和子标题:

plt.suptitle("主标题")
plt.title( "子标题" )

他们分别对应的主要参数有这些:

在这里插入图片描述
在这里插入图片描述

非常的自定义个性化的设计,可以让标题变成我们想让它成为的任何样子。
其中title()参数中的fontdict这个参数,是指我们可以提前把想要的标题样式的信息储存在一个字典里,我们通过这个参数把字典录入,这样或许会更加简洁清晰。


下一步或许我们想要中文标题,需要利用:

在这里插入图片描述

中文字体英文描述中文字体英文描述
宋体SimSun楷体KaiTi
黑体SimHei仿宋FangSong
微软雅黑Microsoft YaHei隶书LiSu
微软正黑体Microsoft JhengHei幼圆YouYuan

最后恢复标准默认设置:

在这里插入图片描述


为使得画面更加符合我们的心意,可以使用tight_layout()函数来调整子图像所在的区域:
在这里插入图片描述

最后我们来演示一遍:

import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]="SimHei"
plt.figure(figsize=( 6,5 ), facecolor = "grey", edgecolor="yellow" )

plt.suptitle("最后的生还者2", fontweight='medium' )
plt.subplot(233)
plt.title( "乔尔", color="R",  )
plt.subplot(234)
plt.title("艾莉", color="green", rotation=45, )
plt.subplot(235)
tina = { 'color':'green', 'rotation':-45 }
plt.title("蒂娜",fontdict=tina)



plt.tight_layout( rect=[0,0,1,0.9])
plt.show()

我创建了一个名字为1的画布,背景为灰色,然后创建了6个区域,但只在3、4、5号区域填充图像。具体图像属性如上,得到结果如下:

在这里插入图片描述

绘制散点图

散点图:是数据点在直角坐标系的分布图

在pyplot库中,我们利用scatter()函数进行绘制散点图。主要参数如下图:

在这里插入图片描述
参数x和y不可省略,这代表了数据点的坐标剩下的则是对数据点的自定义。
marker是一个字符类型,可以用“o” “*”这样很形象的形状简单代表。也有其他常用的数据点样式。

要想把图例显示出来,需要

legend(loc,fontsize)

其中,loc代表图例的位置,fontsize代表字体大小;

在这里插入图片描述

在这里插入图片描述


绘制散点图也需要用到numpy库,利用随机数模块:

在这里插入图片描述如果我们想要绘制正态分布的散点图:

n=1666
x1=np.random.normal(0,1,n)
y1=np.random.normal(0,1,n)

如果需要均匀分布的散点图:

n=1666
x2=np.random.uniform(-4,4,n)
y2=np.random.uniform(-4,4,n)

其中,n是点的个数,normal中0代表均值,也就是这些正态分布散点的中心,1为标准差;在uniform中,-4到4是只正态分布的边界,n为个数。


既然已0为中心,那么坐标轴一定会有负轴,要想显示负轴,需要:

plt.rcParams["axes.unicode_minus"]=False

如果想要显示均值和标准差,可以使用text()函数:
在这里插入图片描述
这里的x、y都不可省略,这是所代表在图的指定位置添加文字

也可以对x轴和y轴进行设置标签或者自定义设置:
在这里插入图片描述最后展示一下:
在这里插入图片描述
如果把正态分布和均匀分布的数据点放在一个图内,则:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False

n=1666
x1=np.random.normal(0,1,n)
y1=np.random.normal(0,1,n)
x2=np.random.uniform(-4,4,n)
y2=np.random.uniform(-4,4,n)


plt.scatter( x1,y1,color="green", marker='o', label='近距离传播' )
plt.scatter( x2,y2,color="blue", marker='*',label='远距离传播' )

plt.suptitle( '飞沫的喷射范围' )
#plt.text(3,3,'均值:0\n标准差:1')  可要可不要
plt.xlabel('喷射宽度x')
plt.ylabel('喷射长度y')
plt.xlim(-4,4)
plt.ylim(-4,4)

plt.legend()
plt.show()

得到结果:
在这里插入图片描述

绘制折线图

折线图:在散点图的基础上,将相邻的点用线段相连接

在pyplot中,利用plot()函数来绘制折线图
其主要参数如下:
在这里插入图片描述x坐标可以不写,因为它会默认从零开始间隔为1依次往后,但是y坐标必须要写,剩下的主要参数基本与绘制一个散点图差不多的要求。

仍然利用numpy库,生成随机数列:

n=25
y=np.random.randint(22,36,n)

绘制折线的基本方法已经掌握,接下来便是利用已知的各种函数对图像进行修饰:
举一个模拟温度的例子:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]="SimHei"

n=30
y1=np.random.randint( 22,36,n )
y2=np.random.randint( 14,25,n )

plt.plot( y1,label='白天最高气温', color='red' )
plt.plot( y2,label='夜晚最高气温', color='blue' )

plt.ylim(0,40)
plt.xlim(1,30)
plt.suptitle( '6月气温折线图' )
plt.xlabel('日期/day', color='purple' )
plt.ylabel('温度/℃', color='purple')

plt.legend()
plt.show()

得到结果:

在这里插入图片描述

绘制柱状图

柱状图:由一系列高度不等的助兴条文表示数据分布的情况

使用bar()函数来绘制柱形图,其主要参数如下:
在这里插入图片描述
left是指柱形图的位置序列,也是柱形的左边缘位;height是柱形高度,这两者不可省略。
width指的是柱形的宽度,默认值为0.8,剩下的参数与前面讲过的用法类似。

接下来简单应用一下:

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]="SimHei"

y=np.arange( 100,600,50 )
x=len(y)

plt.bar( range(x),y,color='blue', label='营业额' )
plt.suptitle('校园小吃店\n买到就是赚到', fontsize='large', fontweight='bold' )
plt.xlabel('天/day',color='purple')
plt.ylabel( '营业额/万元', color='purple' )

plt.legend()
plt.show()

得到结果:
在这里插入图片描述

感谢观看

欢迎各位批评指正 😃

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值