Matplotlib入门01-折线图

折线图01[时间2020年2月]

学习视频

1. 需求

观察2020年1月份北京市的气温变化

2. 数据准备

利用爬虫,爬取目标网址网站的历史天气数据信息,爬取过程

3.折线图的用途及特定。

折线图中,数据是递增还是递减、增减的速率、增减的规律(周期性、螺旋性等)、峰值等特征都可以清晰地反映出来。折线图的特点是反映事物在一段时间内的趋势。

4. 绘制折线图
#导入包
from getData  import demo01 #爬取2345爬虫的包
from matplotlib import pyplot as plt 
import numpy as np

#提取数据,设置x轴y轴
x_ticks = np.arange(1,32) #因为1月份有31天,所以设置x轴有31个刻度,y轴数据一一对应
y_temp = demo01.getWeatherInfo('202001','54511')[1]
y_temp = list(map(int,y_temp))  #正则后的数字带有引号,这里转换成数字

#绘制图形
plt.plot(x_ticks,y_temp)

#展示图形
plt.show()
4. 图形优化

在上面,我们已经把图形画出来了,但是暂时效果不好,让人看不明白,所以我们还要对图形进行优化。

  1. 设置图片大小
#设置图片大小
plt.figure(figsize=(20,8),dpi=80) #dpi 每个点上的像素个数
  1. 设置x轴显示(这个时候我们会发现中文显示不出来,这里提供mac版的方法)
#设置x轴展示 fontproperties 设置中文显示
_x_ticks = ["01月{}日".format(i) for i in x_ticks]
plt.xticks(x_ticks,_x_ticks,rotation=-90,fontproperties=my_font)  #两个数组要一对一
  1. 设置中文显示(Mac版)
from matplotlib import font_manager
#实例化 FontProperties 字体路径,用fc-list查看 fc-list :lang=zh查看中文显示
my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")
  1. 设置y轴
#设置y轴显示  因为range左闭右开,所以+1,保证取到数组所有的数
_y_ticks = ["{}℃".format(i) for i in range(min(y_temp),max(y_temp)+1)]
plt.yticks(range(min(y_temp),max(y_temp)+1),_y_ticks)
  1. 添加注释
#添加注释
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(摄氏度 )",fontproperties=my_font)
plt.title("北京市2020年1月份最高温度",fontproperties=my_font)
完整代码
'''
Created on Feb 11, 2020

@author: sun
'''
#导入包
from getData  import demo01 #爬取2345爬虫的包
from matplotlib import pyplot as plt 
import numpy as np
from matplotlib import font_manager

#绘制北京是一周的天气情况

#实例话 FontProperties 字体路径,用fc-list查看
my_font=font_manager.FontProperties(fname="/System/Library/Fonts/PingFang.ttc")

#获取x轴  y轴的数据
x_ticks = np.arange(1,32)#因为1月份有31天,所以设置x轴有31个刻度,y轴数据一一对应
y_temp = demo01.getWeatherInfo('202001','54511','yWendu')[1]
y_temp = list(map(int,y_temp))  #正则后的数字带有引号,这里转换成数字


#设置图片大小
plt.figure(figsize=(20,10),dpi=80)

#绘制图形
plt.plot(x_ticks,y_temp)

#设置x轴展示
_x_ticks = ["01月{}日".format(i) for i in x_ticks]
plt.xticks(x_ticks,_x_ticks,rotation=-90,fontproperties=my_font)  #两个数组要一对一

#设置y轴显示  因为range左闭右开,所以+1,保证取到数组所有的数
_y_ticks = ["{}℃".format(i) for i in range(min(y_temp),max(y_temp)+1)]
plt.yticks(range(min(y_temp),max(y_temp)+1),_y_ticks)

#添加注释
plt.xlabel("时间",fontproperties=my_font)
plt.ylabel("温度 单位(摄氏度 )",fontproperties=my_font)
plt.title("北京市2020年1月份最高温度",fontproperties=my_font)

#展示图形
plt.show()


优化

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值