【数据分析与挖掘】数据分析学习及实践记录 | part 02-matplotlib折线图

本文记录了使用matplotlib进行数据可视化学习的过程,从基础绘图、调整轴刻度、绘制特定时间段气温到设置显示中文。通过实例介绍了matplotlib的常用功能,如xticks和yticks设置刻度,解决中文显示问题。同时强调了数据可视化的重要性和选择合适图表的必要性。
摘要由CSDN通过智能技术生成

昨天结束环境配置和工具介绍,今天直接进入数据处理的学习。

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_manager
my_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做的好看,清晰,我就直接截图了。

之前,学过可视化的课程,现在可视化的教材还摆在手边,讲这部分的用意其实是,不同的数据特征,用不用的统计图表现效果更好,美观是一方面。清晰直观,是可视化的优先级目的。

接着,老师为了进一步说明这两部分的学习,打开了思维导图,我也跟上。

这部分呢就结束啦!正好朋友在学习前面爬虫部分的内容,视频与自敲的代码结果不一致,回顾了一下当时的博文,又发现新的华点。还是有所得的吧。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值