matplotlib画图基础_坐标轴_图例_标注

基本用法

  1. 导入模块:import matplotlib.pyplot as plt
  2. 定义图像窗口:plt.figure()
  3. 画线图:plt.plot(x, y)
  4. 显示图像:plt.show()

坐标轴

  1. 定义坐标轴范围:plt.xlim()/plt.ylim()
  2. 定义坐标轴名称:plt.xlabel()/plt.ylabel()
  3. 定义坐标轴刻度及名称:plt.xticks()/plt.yticks()
  4. 设置图像边框颜色:ax = plt.gca() ax.spines[].set_color()
  5. 调整刻度位置:ax.xaxis.set_ticks_position()/ax.yaxis.set_ticks_position()
  6. 调整边框(坐标轴)位置:ax.spines[].set_position()
import matplotlib.pyplot as plt
import numpy as np
# 定义数据
x = np.linspace(-3, 3, 50)  # 使用np.linspace定义x:范围是(-3,3),个数是50,将产生一组(-3,3)内均匀分布的50个数
y1 = 2*x + 1
y2 = x**2
# 画线图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')  # 除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':' 

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))
plt.xlabel('I am x')
plt.ylabel('I am y')

plt.show()

(img-3vyMv0Ft-1600742393781)(output_4_0.png)]

自定义坐标轴:

# 画线图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')  # 除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':' 

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 自定义坐标轴
new_ticks = np.linspace(-1, 2, 5)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

plt.show()
[-1.   -0.25  0.5   1.25  2.  ]

在这里插入图片描述

设置图像边框颜色:

# 画线图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')  # 除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':' 

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 自定义坐标轴
new_ticks = np.linspace(-1, 2, 5)
print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

# 设置图像边框颜色
ax = plt.gca()  # plt.gca()获取当前坐标轴信息
ax.spines['right'].set_color('none')  # .spines设置边框
ax.spines['top'].set_color('none')
plt.show()
[-1.   -0.25  0.5   1.25  2.  ]

在这里插入图片描述

调整刻度及边框位置

# 画线图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
plt.plot(x, y2)
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')  # 除了虚线外,大家还可使用以下线性:'-'、'--'、'-.'、':' 

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 自定义坐标轴
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

# 设置图像边框颜色
ax = plt.gca()  # plt.gca()获取当前坐标轴信息
ax.spines['right'].set_color('none')  # .spines设置边框
ax.spines['top'].set_color('none')
# 设置边框位置
ax.xaxis.set_ticks_position('bottom')  # .xaxis.set_ticks_position设置x坐标刻度数字或名称的位置
ax.spines['bottom'].set_position(('data', 0))  # 使用.set_position设置边框位置

plt.show()

在这里插入图片描述

图例

1.添加图例:plt.legend()

# 画线图--加label便于画图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
l1 = plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label='linear line')
l2 = plt.plot(x, y2, label='square line')

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 自定义坐标轴
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

# 加图例
plt.legend(loc='lower right')  # loc:'best' : 0,'upper right' : 1, 'upper left' : 2, 'lower left' : 3, 'lower right' : 4, 'right' : 5, 'center left' : 6, 'center right' : 7, 'lower center' : 8, 'upper center' : 9, 'center' : 10

在这里插入图片描述

设置图例显示的内容:
注意:l1, l2,要以逗号结尾, 因为plt.plot() 返回的是一个列表。然后将 l1,l2 这样的objects以列表的形式传递给 handles

# 画线图--加label便于画图
plt.figure(num=3, figsize=(8, 5))  # num参数决定了程序运行后弹出的图像窗口名字
l1, = plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label='linear line')
l2, = plt.plot(x, y2, label='square line')

# 定义坐标轴
plt.xlim((-1, 2))
plt.ylim((-2, 3))

# 自定义坐标轴
new_ticks = np.linspace(-1, 2, 5)
plt.xticks(new_ticks)
plt.yticks([-2, -1.8, -1, 1.22, 3],[r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])

# 加图例
plt.legend(handles=[l1,l2,], labels=['up','down'], loc='best')

在这里插入图片描述

标注

1.添加标注:plt.annotate()
2.添加注释:plt.text()

# 画图
plt.figure(num=1, figsize=(8, 5),)
# 设置坐标轴
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

plt.plot(x, y1,)

在这里插入图片描述

# 画图
plt.figure(num=1, figsize=(8, 5),)
# 设置坐标轴
ax = plt.gca()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))

plt.plot(x, y1,)

# 增加x=1的标注,相当于画一个线段:
x0 = 1
y0 = 2*x0 + 1
plt.plot([x0, x0,], [0, y0,], 'k--', linewidth=2.5)
# 标粗点(1,3)
plt.scatter([x0, ], [y0, ], s=50, color='b')
# 增加文本标注
# r'   2x+1=' %y0 代表标注的内容
# 参数xycoords='data' 是说基于数据的值来选位置
# xytext=(+30, -30) 和 textcoords='offset points' 表示对于标注位置的描述 和 xy 偏差值,即标注位置是 xy 位置向右移动 30,向下移动30
# 即相对于点(x0,y0) 向右下移动
# arrowprops是对图中箭头类型和箭头弧度的设置,需要用 dict 形式传入
plt.annotate(r'$2x+1=%s$' % y0, xy=(x0, y0), xycoords='data', xytext=(+30, -30),
    textcoords='offset points', fontsize=16,
    arrowprops=dict(arrowstyle='->', connectionstyle="arc3,rad=.2"))

在这里插入图片描述

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值