matplotlib介绍
Matplotlib是一个Python 2D绘图库,它可以在各种平台上以各种硬拷贝格式和交互式环境生成出具有出版品质的图 形。 Matplotlib可用于Python脚本,Python和IPython shell,Jupyter笔记本,Web应用程序服务器和四个图形用户 界面工具包。
Matplotlib试图让简单的事情变得更简单,让无法实现的事情变得可能实现。 只需几行代码即可生成绘图,直方图, 功率谱,条形图,错误图,散点图等。
为了简单绘图,pyplot模块提供了类似于MATLAB的界面,特别是与IPython结合使用时。 对于高级用户,您可以通 过面向对象的界面或MATLAB用户熟悉的一组函数完全控制线条样式,字体属性,轴属性等。
常见图形及特性
特点:能够显示数据的变化趋势,反映事物的变化情况。(变化)
python code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author: imcati
from matplotlib import pyplot as plt
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x, y, color=‘red‘,alpha=0.5,linestyle=‘--‘,linewidth=3)
#plt.plot(x, y, color=‘red‘,alpha=0.5,linestyle=‘dashed‘,linewidth=3)
plt.show()
‘‘‘基础属性设置
color=‘red‘ : 折线的颜色
alpha=0.5 : 折线的透明度(0-1)
linestyle=‘--‘ : 折线的样式
linewidth=3 : 折线的宽度
线的样式
- -- -. :
实线(solid)
短线(dashed)
短点相间线(dashdot)
虚点线(dotted)
‘‘‘
输出:
折点样式:
from matplotlib import pyplot as plt
x = range(1,8) # x轴的位置
y = [17, 17, 18, 15, 11, 11, 13]
# 传入x和y, 通过plot画折线图
plt.plot(x, y, marker=‘o‘)
plt.show()
输出:
折点形状样式:
设置图片大小及保存:
from matplotlib import pyplot as plt
import random
x = range(2, 26, 2) # x轴的位置
y = [random.randint(15, 30) for i in x]
# 设置图片的大小
‘‘‘
figsize:指定figure的宽和高,单位为英寸;
dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
‘‘‘
# 根据画布对象
plt.figure(figsize=(20, 8), dpi=80)
plt.plot(x, y) # 传入x和y, 通过plot画图
# plt.show()
# 保存(注意: 要放在绘制的下面,并且plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空图片。)
plt.savefig(‘./t1.png‘)
# 图片的格式也可以保存为svg这种矢量图格式,这种矢量图放在网页中放大后不会有锯齿
plt.savefig(‘./t1.svg‘)
绘制x轴和y轴刻度
from matplotlib import pyplot as plt
import random
x = range(2,26,2) # x轴的位置
y = [random.randint(15, 30) for i in x]
plt.figure(figsize=(10,8),dpi=80)
# 设置x轴的刻度
#plt.xticks(x)
# plt.xticks(range(1,25))
# 设置y轴的刻度
plt.yticks(y)
# plt.yticks(range(min(y),max(y)+1))
# 构造x轴刻度标签
x_ticks_label = ["{}:00".format(i) for i in x]
#rotation = 45 让字旋转45度
plt.xticks(x,x_ticks_label,rotation = 45)
# 设置y轴的刻度标签
y_ticks_label = ["{}°C".format(i) for i in range(min(y),max(y)+1)]
#plt.yticks(range(min(y),max(y)+1),y_ticks_label)
# 绘图
plt.plot(x,y)
plt.show()
输出:
原文:https://www.cnblogs.com/imcati/p/11257808.html