Matplotlib 是 Python 的绘图库, 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案, 它也可以和图形工具包一起使用,如 PyQt 和 wxPython。
安装方法
#使用python自带的pip下载
pip install matplotli
实例1
'''
绘制一天每隔两个小时的温度变化的折线图
'''
#导入pyplot并起别名plt方便调用
from matplotlib import pyplot as plt
#设置图片大小,figure图形的意思,参数figsize是一个元组(宽,高),dpi表示清晰度
plt.figure(figsize=(20,8),dpi=80)
#时间
x = range(2,26,2)
#温度列表
y = [15,16,14,17,18,20,15,17,20,21,19,22]
#绘图,参数(x轴,y轴)
plt.plot(x,y)
#设置x轴的刻度,参数是列表,这里把上面定义的x传进来
plt.xticks(x)
#同理,设置Y轴的刻度就是yticks,这里设置的刻度是y的最小值和y的最大值
plt.yticks(range(min(y),max(y)+1))
#保存图片,参数为路径
plt.savefig("./test1.png")
#展现绘图
plt.show()
实例2
'''
如果列表a表示10点到12点的每一分钟的气候
绘制折线图观察每分钟气候的变化情况
'''
from matplotlib import pyplot as plt
import random
#10点到12点共2个小时120分钟
x = range(0,120)
#每分钟随机生成一个20-35的数
y = [random.randint(20,35) for i in range(120)]
plt.figure(figsize=(20,8),dpi=80)
#rotation参数可以设置x轴字体的角度方向
plt.xticks(x[::5],rotation=45)
plt.yticks(range(20,36))
plt.plot(x,y)
plt.savefig('./test.png')
plt.show()
注意:matplotlib默认不支持中文字符,因为默认的英文字体无法显示汉字
设置字体的方法一:
#需要导入matplotlib模块
import matplotlib
#创建一个样式字典
font = {'family' : 'MicroSoft YaHei',
'weight' : 'bold',
'size' : 'larger'}
#用matplotlib.rc设置样式,方法有以下两种
matplotlib.rc(“font”,**font)
#matplotlib.rc(“font”,family=“MicroSoft YaHei”,weight=“blod”)
设置字体的方法二:
#需要导入font_manager
from matplotlib import pyplot as plt
from matplotlib import font_manager
#找到中文字体所在电脑的位置,导入中文字体库
my_font = fm.FontProperties(fname='C:\Windows\Fonts\msyh.ttf')
#需要使用的时候传入即可
plt.xticks(x[::5],rotation=45,fontproperties=my_font)
plt.title("图片主标题")
plt.xlabel("x轴标题")
plt.ylabel("y轴标题")
#现状图
plt.plot(x,y)
#点状图
plt.scatter(x,y)
#圆饼图
plt.pie(y)
#柱状图
plt.bar(x,y)
#等等......
import random
from matplotlib import pyplot as plt
#font_manager用于处理汉字显示
from matplotlib import font_manager
x = range(0,20)
y1 = [random.randint(1,20) for i in range(20)]
y2 = [random.randint(1,20) for i in range(20)]
#设置中文字体
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\msyh.ttc')
#设置图片大小和清晰度
plt.figure(figsize=(20,8),dpi=80)
#设置折线图名称和中文字体
plt.title('我是折线图标题',fontproperties=my_font)
#设置折线图x,y轴名称和中文字体
plt.xlabel('我是x轴标题',fontproperties=my_font)
plt.ylabel('我是y轴标题',fontproperties=my_font)
#设置x,y刻度
xticks_labels = ["第{}个".format(i) for i in x]
plt.xticks(x,xticks_labels,rotation=45,fontproperties=my_font)
plt.yticks(range(0,20))
#调用多次plot可创建多个图形,并传入label参数设置图例名
plt.plot(x,y1,label='蓝线',color='blue',linestyle='--')
plt.plot(x,y2,label='红线',color='red',linestyle=':')
#添加图例,并设置样式、位置
plt.legend(prop=my_font,loc='upper left')
#添加背景网格
plt.grid()
#保存图片
plt.savefig('./test3.png')
#显示图片
plt.show()