【python第三方库】Matplotlib库常用函数和属性

参考网址:https://www.cnblogs.com/ikww/p/11497374.html
https://blog.csdn.net/cym0359/article/details/86647426

一、背景介绍

Matplotlib 是 Python 中最受欢迎的数据可视化软件包之一,支持跨平台运行,它是 Python 常用的 2D 绘图库,同时它也提供了一部分 3D 绘图接口。Matplotlib 通常与 NumPy、Pandas 一起使用,是数据分析中不可或缺的重要工具之一。

Matplotlib 是 Python 中类似 MATLAB 的绘图工具,如果您熟悉 MATLAB,那么可以很快的熟悉它。Matplotlib 提供了一套面向对象绘图的 API,它可以轻松地配合 Python GUI 工具包(比如 PyQt,WxPython、Tkinter)在应用程序中嵌入图形。与此同时,它也支持以脚本的形式在 Python、IPython Shell、Jupyter Notebook 以及 Web 应用的服务器中使用。

Matplotlib 是用 Python 语言编写的,并且能够与 Python 的科学计算库 NumPy 搭配使用。

二、常用函数介绍

plt.figure(figsize=(3216),dpi=120)  ###可以绘制一个制定大小的画布,其中常用的参数有figsize(可自定义画布大小),dpi(可定义清晰度)。还有一些不常用的,比如facecolor可以自定义背景颜色
plt.xticks(list,x_label)  ###可以自定义x轴内容,list正如list一样要传入一个列表,后者x_label传入自定义内容
plt.yticks(list,y_label)  ###同xticks
plt.xlabel("自定义x轴图例")  ###可以自定义X轴图例
plt.ylabel("自定义y轴图例")  ###可以自定义y轴图例
plt.axis([-1, 10, 0, 6])  #x轴起始于-1,终止于10 ,y轴起始于0,终止于6
plt.subplot(3,2,4)  #分成3行2列,共6个绘图区域,在第4个区域绘图。排序为行优先。也可 plt.subplot(324),将逗号省略。
plt.grid(linestype="-.",alpha=0.5)  ###可以自定义网格,其中linestyle为线条类型,alpha为透明度
plt.title("自定义图标标题")  ###可以自定义图表的标题
plt.text() #在任意位置增加文本
plt.legend()  ###可以显示图例
plt.savefig("abc.png")  ###可以将图表保存为图像到本地
plt.show()  ###可以显示图像
plt.plot(x,y,label="折线图")  #绘制折线图,传入的x与y必须为列表,label自定义折线图名字
plt.boxplot(data, notch, position)	#绘制箱形图
plt.scatter(x,y,label="newtest")  ###绘制散点图,参数使用方法同上
plt.bar(x,y,width=0.5,color=['r','b','k','c','m','y','g','k','c','b'])  ###绘制柱状图,width可自定义柱体大小,color自定义每个柱体颜色(颜色必须传入为列表且与len(x)相对应)
plt.barh(width, bottom, left, height) #绘制横向条形图
plt.hist(a,bins=group_num,density=True)  ###绘制直方图,其中a为传入的数据集,bins为传入的组数,density默认为False(是否显示频度)
plt.polar(theta, r)  #绘制极坐标图
plt.pie(y,labels=x,colors=['r','b','k','c','m','y','g','k'],autopct="%1.2f%%")  ###绘制饼状图,其中y为每块的值,labels为每块的名称,autopct数值保留固定小数位
plt.subplots(nrows, ncols)  ###在一个画布中绘制多个图像,nrows为行数,ncols为列数

三、代码示例

折线图

import matplotlib.pyplot as plt
import random
plt.figure(figsize = (20,8),dpi = 100)
x = range(40)
y = [random.uniform(18,22) for i in range(40)]
y1 =  [random.uniform(12,16) for i in range(40)]
x_label = ["11:{}".format(i) for i in x]
plt.xticks(x[::5],x_label[:8])	#只显示8个刻标,新版本两个参数要保持一样长度
plt.yticks(range(10,25,1))
plt.grid(linestyle = '--',alpha = 1)
plt.xlabel("time change")
plt.ylabel("work")
plt.title("test")
plt.plot(x,y,linestyle='-.',label="tttttt1")
plt.plot(x,y1,linestyle = '-',label="sssssss2")
plt.legend()
plt.savefig("abcd.png")
plt.show()

在这里插入图片描述

柱状图

import matplotlib.pyplot as plt
import random
x1 = range(5)
x2 = [i+0.2 for i in range(5)]
y1 = [random.uniform(1000,10000) for i in x1]
y2 = [random.uniform(1000,10000) for i in x1]
plt.figure(figsize=(23,8),dpi=100)
plt.bar(x1,y1,width=0.2,color=['r','b','k','c','m'],label="13:00")
plt.bar(x2,y2,width=0.2,color=['y','g','m','r','b'],label="15:00")
plt.xticks([i+0.1 for i in range(5)])
plt.yticks(range(0,11000,1000))
plt.legend()
plt.grid(linestyle="--",alpha=0.5)
plt.show()

在这里插入图片描述

饼状图

import random
import matplotlib.pyplot as plt
x = ['a','b','c','d','e','f','g','h']
y = [random.randint(900,2200) for i in range(8)]
plt.figure(figsize=(20,8),dpi=100)
plt.pie(y,labels=x,colors=['r','b','k','c','m','y','g','k'],autopct="%1.2f%%")
plt.axis('equal')
plt.legend()
plt.show()

在这里插入图片描述

直方图

import random
import matplotlib.pyplot as plt
a = [random.randint(0,100) for i in range(60)]
print(a)
plt.figure(figsize=(20,8),dpi=100)
points = 2
group_num = int(max(a)-min(a)/points)
print(group_num)
plt.xticks(range(min(a),max(a)+2,distance))
plt.grid(linestyle="--",color="r",alpha=0.8)
plt.hist(a,bins=group_num,density=True)
plt.show()

在这里插入图片描述

散点图

import matplotlib.pyplot as plt
import random
x = [random.uniform(200,300) for i in range(10)]
y = [random.uniform(500,800) for i in range(10)]
plt.figure(figsize=(23,8),dpi=100)
plt.xticks(range(190,310,10))
plt.yticks(range(100,1000,50))
plt.grid(linestyle="--",color="g",alpha=1)
plt.scatter(x,y,label="newtest")
plt.legend()
plt.show()

在这里插入图片描述

一个画布绘制多个图像

import matplotlib.pyplot as plt
import random
figure,axes=plt.subplots(2,1,figsize = (30,8),dpi = 100)
x = range(40)
y = [random.uniform(18,22) for i in range(40)]
y1 =  [random.uniform(12,16) for i in range(40)]
x_label = ["11:{}".format(i) for i in x]
axes[0].plot(x,y,color="g",linestyle="-",label="test1")
axes[1].plot(x,y1,color="r",linestyle="-.",label="test2")
axes[0].set_xticks(x[::2])
axes[0].set_xticklabels(x_label[::2])
axes[1].set_xticks(x[::5])
axes[1].set_xticklabels(x_label[::5])
axes[0].set_xlabel("test")
axes[0].set_ylabel("test")
axes[0].set_title("test")
axes[1].set_xlabel("test")
axes[1].set_ylabel("test")
axes[1].set_title("test")
axes[0].legend()
axes[1].legend()
axes[0].grid(linestyle="--",alpha=0.5)
axes[1].grid(linestyle="-.",alpha=1)
plt.show()

在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值