志伟自学数据分析师(1/7)__7天就业数据分析师__第一天matplotlib(12.30)__一蓑烟雨任平生
程序员文章站
2022-03-10 17:55:02
文章目录前言做一道简单的折线图题,自己敲出来代码,那今天的学习就够了做出一个折线图,显示10点到12点的温度,横坐标显示时间,十分钟一个刻度,纵坐标显示温度,要有标题,要有说明,而且要对比今天温度和昨天温度的差异最终效果如下:一、绘制折线图(plt.plot)第一步:导包第二步:写代码第三步:看效果数据分析的最初第一版的折线图也就出来了,代码注释很多,慢慢体会二、设置图片的大小和分辨率(plt.figure)第一步:写代码第二步:看效果三、实现了图片的保存(plt.savefig)第一步:写代码第二步:看效...
文章目录
前言
这篇文章笔记很多,注释貌似比代码多,毕竟第一次学习,写的详细一些吧,看不懂的代码多看注释
很久之前就想学习数据分析了,于是准备7天精通一个职业,虽然我不拿这七天学的东西去面试,但是做个总结吧,有兴趣的可以跟我一起进行学习,学完这七天的课程不知道结果会如何,或许会让你找到工作,也或许对你现在的工作有很大用途,废话不多说了,开始正文吧
做一道简单的折线图题,自己敲出来代码,那今天的学习就够了
做出一个折线图,显示10点到12点的温度,横坐标显示时间,十分钟一个刻度,纵坐标显示温度,要有标题,要有说明,而且要对比今天温度和昨天温度的差异
最终效果如下:
一、绘制折线图(plt.plot)
第一步:导包
from matplotlib import pyplot as plt
这里的as是取别名,这样子后面好用,每次就不需要写pyplot了
第二步:写代码
x = range(120) # range是无法取步长的,只有列表才可以取步长,所以到后期需要list(x)进行转换
y = [random.randint(25, 30) for i in range(120)]
plt.plot(x, y, label="昨天") # label是标签的意思 color是颜色的意思 linestyle线条样式:是虚线
# 展示图片
plt.show()
第三步:看效果
数据分析的最初第一版的折线图也就出来了,代码注释很多,慢慢体会
二、设置图片的大小和分辨率(plt.figure)
第一步:写代码
# 设置尺寸
plt.figure(figsize=(20, 10), dpi=80)
这里的figsize是长款dpi是设置像素,越高越清晰
第二步:看效果
图拉长了很多
三、实现了图片的保存(plt.savefig)
第一步:写代码
# 存储图片
plt.savefig('./1.png')
后面接路径,绝对路径相对路径都可以
第二步:看效果
当前路径多了一张图片
四、设置X轴Y轴的字刻度和字符串(plt.xticks)
# 这里显示12个+12个是24个
xx = [f'10点{i}分' for i in list(x)[::10]]
xx += [f'11点{i}分' for i in list(x)[::10]]
print(xx)
plt.xticks(list(x)[::10], xx) ##这里会报错,因为前面是10个,后面是24个
plt.xticks(list(x)[::5], xx) ##这里改为5,120/5就是24个了,就不会报错了
# 五、解决了刻度稀疏和密度的问题(plt.xticks)
# 这里显示60个+60个是120个
xx = [f'10点{i}分' for i in range(60)]
xx += [f'11点{i}分' for i in range(60)]
# 前后两个值要对应,前面多少个,后面就需要多少个
# 一个参数的时候是刻度,数字
# 两个参数的时候前面是数字,后面是字符串,这样对应起来
plt.xticks(list(x)[::10], xx[::10], rotation=45) # rotation旋转的意思
六、设置了标题,XY轴的label(title,xlabel)
# 添加描述信息
plt.xlabel('时间 (单位:时/分)')
plt.ylabel('温度 (单位:°)')
plt.title('10点到12点的温度变化情况统计图')
# 设置网格线
plt.grid(alpha=0.4) # alpha透明度的意思0到1之间
# 七、设置了字体(rc,font_manager) ## 第一种方法:
# 设置展示中文字体的第一种方法,只试用于Window和Linuex
# 这段代码在源码中拿就可以了
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
# **的意思就是把字典转换成A:B
# matplotlib.rc('font', **font)
# 上面的代码可以写成
matplotlib.rc('font', family='MicroSoft YaHei')
## 第二种方法:
# 设置展示中文字体的第二种方法,只试用于所有系统
font_manager.FontProperties(fname='./本地字体路径')
这里需要注意的是需要导包font_manager
# 八、在一个图上绘制多个图形(plt多次plot即可)
# 10点到12点每分钟的气温
x = range(120) # range是无法取步长的,只有列表才可以取步长,所以到后期需要list(x)进行转换
y = [random.randint(25, 30) for i in range(120)]
# 设置尺寸
plt.figure(figsize=(20, 10), dpi=80)
plt.plot(x, y, label="昨天", color='orange', linestyle=':') # label是标签的意思 color是颜色的意思 linestyle线条样式:是虚线
y1 = [random.randint(25, 30) for i in range(120)]
# 如果要看两条线的差异的话,plot两次即可
# 这里的时间是相同的,只有温度不同,座椅只需要修改Y即可
plt.plot(x, y1, label='今天', color='cyan', linestyle='--') # linestyle线条样式:是点线
纵坐标改变,横坐标不需要改变
# 九、为不同的图形添加图例
# 设置图例
plt.legend(loc=0) # 这里可以指定图例的位置loc
源码里面有01234567代表的意思,也可以写英文,这里简单点直接写数字了
# 十、代码总和
from matplotlib import pyplot as plt
import random
import matplotlib
from matplotlib import font_manager
# 设置展示中文字体的第一种方法,只试用于Window和Linuex
# 这段代码在源码中拿就可以了
font = {'family': 'MicroSoft YaHei',
'weight': 'bold',
'size': 'larger'}
# **的意思就是把字典转换成A:B
# matplotlib.rc('font', **font)
# 上面的代码可以写成
matplotlib.rc('font', family='MicroSoft YaHei')
# 设置展示中文字体的第二种方法,只试用于所有系统
# font_manager.FontProperties(family='MicroSoft YaHei')
# 10点到12点每分钟的气温
x = range(120) # range是无法取步长的,只有列表才可以取步长,所以到后期需要list(x)进行转换
y = [random.randint(25, 30) for i in range(120)]
# 设置尺寸
plt.figure(figsize=(20, 10), dpi=80)
plt.plot(x, y, label="昨天", color='orange', linestyle=':') # label是标签的意思 color是颜色的意思 linestyle线条样式:是虚线
y1 = [random.randint(25, 30) for i in range(120)]
# 如果要看两条线的差异的话,plot两次即可
# 这里的时间是相同的,只有温度不同,座椅只需要修改Y即可
plt.plot(x, y1, label='今天', color='cyan', linestyle='--') # linestyle线条样式:是点线
# 这里显示12个+12个是24个
# xx = [f'10点{i}分' for i in list(x)[::10]]
# xx += [f'11点{i}分' for i in list(x)[::10]]
# print(xx)
# plt.xticks(list(x)[::10], xx) ##这里会报错,因为前面是10个,后面是24个
# plt.xticks(list(x)[::5], xx) ##这里改为5,120/5就是24个了,就不会报错了
# 这里显示60个+60个是120个
xx = [f'10点{i}分' for i in range(60)]
xx += [f'11点{i}分' for i in range(60)]
# 前后两个值要对应,前面多少个,后面就需要多少个
# 一个参数的时候是刻度,数字
# 两个参数的时候前面是数字,后面是字符串,这样对应起来
plt.xticks(list(x)[::10], xx[::10], rotation=45) # rotation旋转的意思
# 添加描述信息
plt.xlabel('时间 (单位:时/分)')
plt.ylabel('温度 (单位:°)')
plt.title('10点到12点的温度变化情况统计图')
# 设置网格线
plt.grid(alpha=0.4) # alpha透明度的意思0到1之间
# 设置图例
plt.legend(loc=0) # 这里可以指定图例的位置loc
# 存储图片
plt.savefig('./1.png')
# 展示图片
plt.show()
学习总结
1 绘制折线图(plt.plot)
2 设置图片的大小和分辨率(plt.figure)
3 实现了图片的保存(plt.savefig)
4 设置X轴Y轴的字刻度和字符串(plt.xticks)
5 解决了刻度稀疏和密度的问题(plt.xticks)
6 设置了标题,XY轴的label(title,xlabel)
7 设置了字体(rc,font_manager)
8 在一个图上绘制多个图形(plt多次plot即可)
9 为不同的图形添加图例
这里还有一些功能并没有具体说明,比如加水印什么的,如果想学习深入的话,可以百度直接复制代码即可,很简单的
第一天的学习就到此结束
本文地址:https://blog.csdn.net/Jaeger_Java/article/details/111983186
上一篇: 唐代宗李豫是怎么让国家恢复平定的?他采取了哪些施政措施?
下一篇: 【c#教程】C# 基本语法