matplotlib.pyplot详解

目录

  • 官方文档
  • 导入第三方库
  • 画布和坐标轴设置
        • 设置画布大小和背景
        • 设置x和y的坐标范围
        • 设置y轴坐标范围
        • 设置x轴坐标范围
        • 设置x轴刻度
        • 设置y轴刻度
        • 设置图标标题
        • 设置图例
        • 显示网格
        • 保存图片
        • 实例
  • 子图
        • 设置子图(方法1)`首选方法`
        • 设置子图(方法2)
        • 设置子图(方法3)
        • 将画布分成许多区域
        • 设置子图间距
        • 实例
        • 实例
        • 实例
  • 各种图表
        • 折线图
        • 散点图
        • 柱状图
        • 条形图
        • 饼图
        • 箱线图
        • 直方图

官方文档

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'  #设置字体,默认字体显示不了中文
plt.plot(np.linspace(0,6,20),np.linspace(0,8,20),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() #显示图表

matplotlib.pyplot详解_第1张图片

子图

设置子图(方法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()

matplotlib.pyplot详解_第2张图片

实例

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()

matplotlib.pyplot详解_第3张图片

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()

matplotlib.pyplot详解_第4张图片

实例

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()

matplotlib.pyplot详解_第5张图片

各种图表

折线图

plt.plot()

散点图

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")

matplotlib.pyplot详解_第6张图片

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')

matplotlib.pyplot详解_第7张图片

条形图

plt.barh()

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

matplotlib.pyplot详解_第8张图片

饼图

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
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%', shadow=False, startangle=50)
plt.axis('equal')
plt.show()

matplotlib.pyplot详解_第9张图片

箱线图

plt.boxplot()

直方图

plt.hist()

你可能感兴趣的:(python,plot)