Matplotlib绘图项目(一):10点到12点每分钟的气温变化情况

版权声明:转载请注明来源及作者,谢谢! https://blog.csdn.net/qq_42442369/article/details/84109275
需求:
  • 绘制10点到12点每分钟的气温变化情况
难点:
  • x轴y轴刻度表示问题
  • 中文显示失败问题
  • 图片保存本地失败问题
终图:

在这里插入图片描述

第一部分代码如下:

# 引入matplotlib下的pyplot模块
import matplotlib.pyplot as plt

import random

import matplotlib

# x轴设为时间,步长为2
x = range(2,26,2) 

# y轴设为采集到的温度值
y = [15,13,14.5,17,20,25,26,26,27,22,18,15]

# 图形修饰1: 调节图形大小,三个参数分别是:长,宽,清晰度;20小了,建议80
# 注意: 一定要在联立之前设置figsize,清晰度调节的清晰一些,长宽不用怎么调节

plt.figure(figsize = (20, 8), dpi = 80)

# 调用plot方法,联立xy轴
plt.plot(x,y)

# 图形修饰2: 设置x轴的刻度*(为了考虑刻度的稀疏程度)
# 注意: 为了进一步考虑到小数如果刻度需要获得小数的,就需要用列表推导式

_xticks_labels = [i/2 for i in range(4,50)] # 奇数也除以2了
plt.xticks(_xticks_labels)

# 设置y轴的刻度,直接规定最大值和最小值
plt.yticks(range(min(y),max(y)+1)) # 记住得加range()你取得是最大值最小值

# 保存图片到本地(但我最开始的保存为空白图片,因为最开始在savefig在show()后面)
plt.savefig('C:/Users/shuol/Desktop/t6.jpg')

# 注意: 如果不保存到本地,可以直接点击图片右键操作,如果是IDLE或者pycharm还可以在弹出的图片上进行直接修饰,具体大家可以试一下。

# 显示图像
plt.show()

在这里插入图片描述

第二部分代码如下:

# 引入matplotlib下的pyplot模块
import matplotlib.pyplot as plt

import random

import matplotlib

# 需求: 120分钟每分钟与20到35度中任选的一个度数关联,呈现在二维图中

# 遇到的纠结问题:刻度显示中文的问题! 
# 解决方法,如下两行代码,然后遇到的中文内容前面都加u

plt.rcParams['font.sans-serif']=['SimHei']  #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False  #用来正常显示负号

x = range(1,121)

y = [random.randint(20,35) for i in range(120)] 

plt.figure(figsize = (20, 8), dpi = 80)

plt.plot(x, y)

"""
难点:
"""
# 步长取3,让刻度稍微稀疏一点
# _x = list(x)[::3]
# 调整x轴的刻度,希望表示为汉字具体时间
# 注意,xticks方法的第一个参数是数值,第二个参数是字符串,必须严格一一对应
# 注意totation 90度

# 设置第二个参数
_xticks_labels = [u'10点{}分'.format(i) for i in range(60)] # 把时间区分开,用两个60,第二个变量用+=;中文还需要内容前面加u
_xticks_labels += [u'11点{}分'.format(i) for i in range(60)]

plt.xticks(list(x)[::3],_xticks_labels[::3], rotation = 45) 

# 添加描述性信息
plt.xlabel(u'时间')
plt.ylabel(u'温度 单位(℃)')
plt.title(u'10点到12点每分钟的气温变化情况')


# 显示图像
plt.show()

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42442369/article/details/84109275