matplotlib的使用
时间:2019-04-20
本文章向大家介绍matplotlib的使用,主要包括matplotlib的使用使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
举个例子:
假设一天中每隔两个小时(range(2,26,2))的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15],将其变成折线图进行展示
在windows中系统中展示的图片如图:
现在来优化代码:
设置图片大小
from matplotlib import pyplot as plt x = range(2, 26, 2) y = [15,13,14.5,17,20,25,26,26,27,22,18,15] # figure图形图标的意思,这里只画的图 # 通过实例化一个figure并且传递参数,能够在后台自动使用该figure实例 # dpi 表示一个像素点的个数 plt.figure(figsize=(10, 7), dpi=80) # 绘制折线图 plt.plot(x, y) # 保存(svg文件在浏览器中打开放大不会失帧) plt.savefig('./sig_size.png') # 展示图形 # plt.show()
图片展示
设置x,y轴的数值
from matplotlib import pyplot as plt x = range(2, 26, 2) y = [15,13,14.5,17,20,25,26,26,27,22,18,15] plt.figure(figsize=(10, 7), dpi=80) plt.plot(x, y) # 单独设置x轴 # _xticks = range(2, 26, 2) # list(_xticks): [2,4,6,8...] _xticks = [i/2 for i in range(4, 49)] # [2.0, 2.5, 3.0, 3.5 .....] # 刻度太密集可以使用列表步长 plt.xticks(_xticks[::3]) # y轴利用数据最小值最大值进行设置范围(最大值需要+1才能取到值) plt.yticks(range(min(y), max(y)+1)) plt.show()
举个例子
如果列表a表示10点到12点的每一分钟的气温,如何绘制折线图观察每分钟气温的变化情况?
a= [random.randint(20,35) for i in range(120)]
从逻辑上完成功能实现:
import random from matplotlib import pyplot as plt x = range(0, 120) y = [random.randint(20,35) for i in range(120)] plt.figure(figsize=(16, 8), dpi=80) plt.plot(x, y) # 设置x轴刻度 _xticks_label = ['10点{}分'.format(i) for i in range(60)] _xticks_label += ['11点{}分'.format(i) for i in range(60)] #rotation 旋转 plt.xticks(list(x)[::5], _xticks_label[::5], rotation=45) plt.yticks(range(min(y), max(y)+1)) plt.show()
但是会发现字体出现问题
所以需要解决字体的显示问题
所以在windows,或者linux中,可能有效的办法:
import random import matplotlib from matplotlib import pyplot as plt
# 这是windows和linux设置字体的方式
font = { 'family': 'MicroSoft YaHei', 'weight': 'bold', 'size': 'larger' } matplotlib.rc("font", **font) # 类似于matplotlib.rc("font", family='MicroSoft YaHei', weight='blod', size='larger') x = range(0, 120) y = [random.randint(20,35) for i in range(120)] plt.figure(figsize=(16, 8), dpi=80) plt.plot(x, y) # 设置x轴刻度 _xticks_label = ['10点{}分'.format(i) for i in range(60)] _xticks_label += ['11点{}分'.format(i) for i in range(60)] #rotation 旋转 plt.xticks(list(x)[::5], _xticks_label[::5], rotation=45) plt.yticks(range(min(y), max(y)+1)) plt.show()
但是不保证成功,因为电脑的字体配置情况不同
第二种推荐的方法:
自己设置字体文件:(字体库下载)
import random import matplotlib from matplotlib import pyplot as plt from matplotlib import font_manager # 另一种设置字体的方式 my_font = font_manager.FontProperties(fname="./Hiragino Sans GB.ttc") x = range(0, 120) y = [random.randint(20,35) for i in range(120)] plt.figure(figsize=(16, 8), dpi=80) plt.plot(x, y) # 设置x轴刻度 _xticks_label = ['10点{}分'.format(i) for i in range(60)] _xticks_label += ['11点{}分'.format(i) for i in range(60)] #rotation 旋转 plt.xticks(list(x)[::5], _xticks_label[::5], rotation=45, fontproperties=my_font) plt.yticks(range(min(y), max(y)+1)) plt.show()
可以通过size属性设置字体大小:
plt.xticks(list(x)[::5], _xticks_label[::5], rotation=45, fontproperties=my_font, size=12)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法