这篇文章笔记很多,注释貌似比代码多,毕竟第一次学习,写的详细一些吧,看不懂的代码多看注释
很久之前就想学习数据分析了,于是准备7天精通一个职业,虽然我不拿这七天学的东西去面试,但是做个总结吧,有兴趣的可以跟我一起进行学习,学完这七天的课程不知道结果会如何,或许会让你找到工作,也或许对你现在的工作有很大用途,废话不多说了,开始正文吧
做一道简单的折线图题,自己敲出来代码,那今天的学习就够了
做出一个折线图,显示10点到12点的温度,横坐标显示时间,十分钟一个刻度,纵坐标显示温度,要有标题,要有说明,而且要对比今天温度和昨天温度的差异
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(figsize=(20, 10), dpi=80)
这里的figsize是长款dpi是设置像素,越高越清晰
# 存储图片
plt.savefig('./1.png')
后面接路径,绝对路径相对路径都可以
# 这里显示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之间
# 设置展示中文字体的第一种方法,只试用于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
# 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()