昨天结束环境配置和工具介绍,今天直接进入数据处理的学习。
01matplotlib的基础绘图01
1. 学习matplotlib的两条理由:能将数据进行可视化,更直观呈现 | 使数据更加客观 更具有说服力
2.matplotlib的应用场景:公司用的不多,有专用的前端
3.先讲的原因是,为了后面处理数据结果能直接展示,更激励数据的处理。
4.简要介绍:最流行的python底层绘图库,主要做数据可视化图表,仿照matlab构建。
5.基本要点:
点→坐标,把五个点的坐标连接成了有空调线,组成了一个折线图,这里举了一个小例子,代码自取:
假使一天中每个两个小时(range(2,26,2))的气温(°C)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15]
#from Ruby in 20190829 21:14
from matplotlib import pyplot as plt
x = range(2,26,2) #数据在x轴的位置,可迭代
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]
#数据在y轴的位置,可迭代
plt.plot(x,y)
plt.show()
这位老师讲课风格是,先对着代码讲一遍,然后再开始敲,敲的过程中再进行讲解一遍。
所以在跟视频的过程中,第一遍听的时候我先把代码敲完了。
第二遍,听老师的思路。顺便把代码执行了。
老师的包没有装好,所以第一节讲完代码老师开始装包,进入第二节。
02matplotlib的基础绘图和调整x轴的刻度
老师针对图开始讲解,x轴的刻度,包括图能传达的信息。细节需要完善,也就是说,还有很多工作可以做。
好忧郁啊!居然,github挂了!进不去了,不知道是自己的网还是?!希望不是!
可以看出来,老师将图形绘制的个性化问题挨条描述出来
可以保存为SVG,不容易失真。确实能保存到png。
快十点了,回家回家。这里老师主要讲解轴的刻度设置,使用着“xticks”、“yticks”设置刻度。老师留了练习。
昨天的题目老师今天开始讲解。
03matplotlib的绘制10点到12点的气温
按照讲解,代码如下。
# encoding:utf-8
# from ruby in 20190830 21:33
from matplotlib import pyplot as plt
import random
x = range(0, 120)
y = [random.randint(20,35) for i in range(120)]
plt.plot(x,y)
plt.show()
阿姨又来熄灯了。今天就到这里吧。
04matplotlib设置显示中文
因为matplotlib默认不支持中文字符,英文字体无法显示汉字,所以需要设置。
linux/mac 查看支持字体 :fc-list → 查看支持字体
fc-list:lang=zh →查看支持的中文 (冒号前面有空格)
如何修改matplotlib的默认字体,可以修改matplotlib.rc font_manager
好难改啊!!不改了!回家
搞出来了。用的fname方式。
from matplotlib import font_managermy_font = font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")
之后每次使用到中文部分,可以加上属性“fontproperties=my_font”,其余部分比较简单,源码自取。
# encoding:utf-8
# from ruby in 20190830 21:33
from matplotlib import pyplot as plt
import random
import matplotlib
# mac设置方式
from matplotlib import font_manager
# my_font = font_manager.FontProperties(fname="放字体的路径+文件名.文件类型")
# fontproperties = my_font #放在xticks里
# windows和linux设置字体的方式 SinSun
# font = {'family': 'Microsoft YaHei UI',
# 'weight': 'bold',
# 'size': 'larger'}
#
# matplotlib.rc("font",**font)
# 删除路径下 C:\Users\Ruby .matplotlib
# matplotlib.rc("font", family='simsun', weight="bold")
# matplotlib.matplotlib_fname()
my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")
x = range(0, 120)
y = [random.randint(20, 35) for i in range(120)]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
# 调整x轴的刻度
_xtick_labels = ["10点{}分".format(i) for i in range(60)]
_xtick_labels += ["11点{}分".format(i) for i in range(60)]
# 仅有列表可用这种[]方式取步长3 数字和字符串一一对应 数据长度一样
plt.xticks(list(x)[::3], _xtick_labels[::3], rotation=45, fontproperties=my_font) # rotation旋转90°
# 添加描述信息
plt.xlabel("时间", fontproperties=my_font)
plt.ylabel("温度 单位(°C)", fontproperties=my_font)
plt.title("10点到12点每分钟的气温变化", fontproperties=my_font)
plt.show()
讲完这个练习老师开始放练习,有东西。
a = [1,0,1,1,2,4,3,2,3,4,4,5,6,5,4,3,3,1,1,1]
# encoding:utf-8
# from ruby in 2019/09/02 15:08
from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
my_font = font_manager.FontProperties(fname="C:/Windows/Fonts/msyh.ttc")
# age = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
x = range(11, 31)
y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y)
# 设置x轴刻度
_xtick_labels = ["{}岁".format(i) for i in x]
# _ytick_labels = {"{}次".format(a) for a in y}
plt.xticks(x,_xtick_labels,fontproperties=my_font)
# 添加描述信息
plt.xlabel("岁数", fontproperties=my_font)
plt.ylabel("指数 单位(个)", fontproperties=my_font)
plt.title("10岁到30岁交友指数", fontproperties=my_font)
plt.show()
单人完成后,加上同桌的。
讲到这,老师提了一个东西,哪些能画,哪些不能画,官方都是有数的。
戳我看。Gallery — Matplotlib 3.1.1 documentation 如果误入,百度“matplotlib”点第一个英文,进去后选examples就行。
原谅我懒,老师PPT做的好看,清晰,我就直接截图了。
之前,学过可视化的课程,现在可视化的教材还摆在手边,讲这部分的用意其实是,不同的数据特征,用不用的统计图表现效果更好,美观是一方面。清晰直观,是可视化的优先级目的。
接着,老师为了进一步说明这两部分的学习,打开了思维导图,我也跟上。
这部分呢就结束啦!正好朋友在学习前面爬虫部分的内容,视频与自敲的代码结果不一致,回顾了一下当时的博文,又发现新的华点。还是有所得的吧。