matplotlib.pyplot详解

官方文档

pyplot官方文档链接

导入第三方库

from matplotlib import pyplot as plt

画布和坐标轴设置

设置画布大小和背景

plt.figure(num=None, figsize=None, dpi=None, facecolor=None,edgecolor=None, frameon=True)

  • num:画布编号或名称,数字为编号 ,字符串为名称
  • figsize:指定figure的宽和高,单位为英寸
  • dpi参数指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80,1英寸等于2.5cm,A4纸是 21*30cm的纸张
  • facecolor:背景颜色
  • edgecolor:边框颜色
  • frameon:是否显示边框
设置x和y的坐标范围

plt.axis([xmin,xmax,ymin,ymax])

设置y轴坐标范围

plt.ylim(ymin,ymax)

设置x轴坐标范围

plt.xlim(xmin,xmax)

设置x轴刻度

plt.xticks()

设置y轴刻度

plt.yticks()

设置图标标题

plt.title()

设置图例

plt.legend(loc)

显示网格

plt.gird(alpha)

保存图片

plt.savefig()

实例
from matplotlib import pyplot as plt
import numpy as np
plt.figure(figsize=(3,4.5)) #设置画布大小,默认画布序号为零
#plt.figure(num=0,figsize=(6,9)) #设置画布大小
#plt.subplot(111) #默认
#fig,ax=plt.subplots()
plt.rcParams['font.family']='MicroSoft YaHei'  #设置字体,默认字体显示不了中文

#linestyle线条样式 ,marker:点的形状,color:颜色 label:图例
plt.plot(np.linspace(0,6,20),np.linspace(0,8,20),linestyle=':',label='plot',marker='o',color='cyan')

plt.xlim((0,6)) #设置x轴刻度范围
plt.ylim((0,9)) #设置y轴刻度范围
plt.yticks(np.linspace(0, 9,10))#设置y轴刻度
plt.xticks(np.linspace(0, 6,7),['1月','2月','3月','4月','5月','6月','7月'],rotation=45) #设置x轴刻度
plt.title("折线图")# 设置图表标题
plt.xlabel('x') #x轴标题
plt.ylabel('y')#y轴标题
plt.legend(loc='upper left')# 显示图例
plt.annotate(text='max', xy=(6, 8), xytext=(4, 4), arrowprops=dict(arrowstyle='->',facecolor='black'),xycoords='data',bbox= dict(boxstyle="round", fc="0.8"))
plt.show() #显示图表

在这里插入图片描述

子图

设置子图(方法1)首选方法

plt.subplots()

设置子图(方法2)

plt.subplot2gird()

设置子图(方法3)

plt.axes()

将画布分成许多区域

GridSpec()

设置子图间距

plt.subplots_adjust()

实例
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.gridspec import GridSpec

# 创建空白画布
plt.figure(figsize=(6,8),facecolor="white")  #facecolor设置画布的颜色

# 修改散点图背景颜色
plt.rcParams["axes.facecolor"] = "white"  #s设置坐标轴颜色

# 调整子图之间的间隔
plt.subplots_adjust(hspace=0.4,wspace=0.6)

# 分割画布,将画布分割为小单元
# 将画布划分为5行4列
gs = GridSpec(5,4)

# 添加第一个子图
plt.subplot(gs[:3,:3])
x = np.arange(0, 2*np.pi, 0.1)
y1 = np.sin(x)
plt.scatter(x,y1)

# 添加第二个子图
plt.subplot(gs[:2,3:])
y2 = np.cos(x)
plt.scatter(x,y2)

# 添加第三个子图
plt.subplot(gs[2,3:])
y3 = np.sin(x)
plt.scatter(x,y3)

# 添加第四个子图
plt.subplot(gs[3:,:2])
y4 = np.cos(x)
plt.scatter(x,y4)

# 添加第五个子图
plt.subplot(gs[3:,2:])
y5 = np.sin(x)
plt.scatter(x,y5)

plt.suptitle('total')
plt.show()

在这里插入图片描述

实例
import matplotlib.pyplot as plt
axes1=plt.subplot2grid((3,3),(0,0),colspan=3)
axes2=plt.subplot2grid((3,3),(1,0),colspan=2)
axes3=plt.subplot2grid((3,3),(1,2))
axes4=plt.subplot2grid((3,3),(2,0))
axes5=plt.subplot2grid((3,3),(2,1),colspan=2)
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=0.5, hspace=0.5)
plt.suptitle("Demo of subplot2grid")
plt.show()

在这里插入图片描述

import numpy as np
import matplotlib.pyplot as plt


x1 = np.linspace(0.0, 5.0)
x2 = np.linspace(0.0, 2.0)

y1 = np.cos(2 * np.pi * x1) * np.exp(-x1)
y2 = np.cos(2 * np.pi * x2)

plt.axes([0.14, 0.35, 0.77, 0.6])
plt.plot(x1, y1, 'yo-')

plt.axes([0.14, 0.05, 0.77, 0.2])
plt.plot(x2, y2, 'r.-')

plt.show()

实例
import matplotlib.pyplot as plt
from pylab import *

x = linspace(0, 5, 10)
y = x ** 2

fig = plt.figure()

axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])  # left, bottom, width, height (range 0 to 1) 前两个参数表示在figure中的位置
axes2 = fig.add_axes([0.2, 0.5, 0.4, 0.3])  # inset axes

axes.plot(x, y, 'r')  # 参数3 为设置颜色

axes.set_xlabel('x')
axes.set_ylabel('y')
axes.set_title('title')

# insert
axes2.plot(y, x, 'g')
axes2.set_xlabel('y')
axes2.set_ylabel('x')
axes2.set_title('insert title');

plt.show()

在这里插入图片描述

各种图表

折线图

plt.plot()

from matplotlib import pyplot as plt
import numpy as np
plt.figure(figsize=(3,4.5)) #设置画布大小,默认画布序号为零
#plt.figure(num=0,figsize=(6,9)) #设置画布大小
#plt.subplot(111) #默认
#fig,ax=plt.subplots()
plt.rcParams['font.family']='MicroSoft YaHei'  #设置字体,默认字体显示不了中文
#linestyle线条样式 ,marker:点的形状,color:颜色
plt.plot(np.linspace(0,6,20),np.linspace(0,8,20),linestyle=':',marker='o',color='cyan',label='plot')   
plt.xlim((0,6)) #设置x轴刻度范围
plt.ylim((0,9)) #设置y轴刻度范围
plt.yticks(np.linspace(0, 9,10))#设置y轴刻度
plt.xticks(np.linspace(0, 6,7),['1月','2月','3月','4月','5月','6月','7月'],rotation=45) #设置x轴刻度
plt.title("折线图")# 设置图表标题
plt.xlabel('x') #x轴标题
plt.ylabel('y')#y轴标题
plt.legend(loc='upper left')# 显示图例
plt.annotate('max', xy=(6, 8), xytext=(4, 4), arrowprops=dict(arrowstyle='->',facecolor='black'),xycoords='data')
plt.show() #显示图表

在这里插入图片描述

散点图

plt.scatter()

柱状图

plt.bar()

import  matplotlib.pyplot as plt
import numpy as np
data = [[5,25,50,20],
        [4,23,51,17],
        [6,22,52,19]]
X = np.arange(4) #四类柱子


plt.bar(X + 0.00, data[0], color = 'b', width = 0.25,label = "A")# 每一类柱子的第一个蓝色柱子
plt.bar(X + 0.25, data[1], color = 'g', width = 0.25,label = "B")# X+0.25是因为一个柱子的width是0.25
plt.bar(X + 0.5, data[2], color = 'r', width = 0.25,label = "C")

在这里插入图片描述

import  matplotlib.pyplot as plt
import numpy as np
data = np.array([[10., 30., 19., 22.],
                [5., 18., 15., 20.],
                [4., 6., 3., 5.]])
color_list = ['b', 'g', 'r']
ax2 = plt.subplot(111)
X = np.arange(data.shape[1])
print(X)
for i in range(data.shape[0]):#i表示list的索引值
    ax2.bar(X, data[i],
         width=0.2,
         bottom = np.sum(data[:i], axis = 0),
         color = color_list[i % len(color_list)],
            alpha =0.5
            )
plt.savefig('zhifangtu.png',dpi=120,bbox_inches='tight')

在这里插入图片描述

条形图

plt.barh()

import  matplotlib.pyplot as plt
import numpy as np
data = np.linspace(1,50,4)
plt.barh(range(len(data)),data)

在这里插入图片描述

饼图

plt.pie()

import  matplotlib.pyplot as plt

labels='frogs','hogs','dogs','logs'
sizes=15,20,45,10
colors='yellowgreen','gold','lightskyblue','lightcoral'
explode=0,0.1,0,0

'''
size:每一部分占总份数的多少份
explode:每一块分离度
colors:每一块的颜色 
autopct:每一块所占比例
pcdistance:autopct 的显示位置
shadow:是否有阴影
startangle:第一块开始的角度
wedgeprops:每一块的相关参数
'''

plt.pie(sizes, explode=explode,pctdistance=0.85, labels=labels, radius=1,colors=colors, 
        autopct='%1.1f%%', shadow=False, startangle=90,wedgeprops=dict(width=0.3, edgecolor='w'))
plt.axis('equal')
plt.show()

在这里插入图片描述

箱线图

plt.boxplot()

直方图

plt.hist()

图像显示

from PIL import Image
import matplotlib.pyplot as plt
img = Image.open('images.jpg')
plt.figure("Image") # 图像窗口名称
plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show()

在这里插入图片描述

  • 76
    点赞
  • 548
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千禧皓月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值