python基础知识(十一):matplotlib的基本用法一

1. matplotlib库和numpy库

matplotlib库是python的绘图库,numpy库是numpy是python中基于数组对象的科学计算库。

2. matplotlib绘图的简单示例

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-1, 1, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y的函数
y2 = x ** 2  # 写出y的函数
plt.figure(1)
plt.plot(x, y1)  # 以x为横坐标,y1为纵坐标画图
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.show()  # 将画的图显示出来,必不可少

这段代码首先导入matplotlib和numpy库,然后产生-1到1的1*50的数组,也就是行向量,然后产生两个函数,并且绘制函数,而且在一幅图中绘制多条曲线时直接用plot即可,最后一步plt.show()必不可少,如果少了图像不显示。
在这里插入图片描述
当然,绘制两幅图也可以。

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-1, 1, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y的函数
y2 = x ** 2  # 写出y的函数
plt.figure(1)
plt.plot(x, y1)  # 以x为横坐标,y1为纵坐标画图
plt.figure(2)
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.show()  # 将画的图显示出来,必不可少

在这里插入图片描述
在这里插入图片描述

3. 设置窗口的尺寸比例,线宽和颜色

在figure()中添加figsize=(, )改变窗口的长宽比,添加color=‘r’, linewidth=1.0, linestyle='–'是改变颜色,线宽和线型。线型和颜色有哪些样式大致同MATLAB,可参考线型和颜色

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-3, 3, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y1的函数
y2 = x ** 2  # 写出y2的函数
plt.figure(1)
plt.plot(x, y1)  # 以x为横坐标,y1为纵坐标画图
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.figure(2, figsize=(8, 5))  # 给图像序号和大小设置长为8宽为5
plt.plot(x, y1, color='r', linewidth=1.0, linestyle='-.')
"""以x为横坐标,y1为纵坐标画图,设置线的颜色红色,线宽1.0,线的类型虚线"""
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.show()  # 将画的图显示出来,必不可少

在这里插入图片描述
在这里插入图片描述

4. 坐标轴设置

plt.xlim((-1, 3))  # 设置x坐标的范围是-1到3
plt.ylim((-2, 8))  # 设置y坐标的范围是-2到8
plt.xlabel('I am x')  # 设置横坐标
plt.ylabel('I am y')  # 设置纵坐标

这段代码是设置坐标轴范围和显示坐标轴标签。

new_ticks = np.linspace(-1, 3, 5)
print(new_ticks)
plt.xticks(new_ticks)  # 设置横坐标为-1到3分为5个标记
plt.yticks([-2, 1, 4, 6, 8], [r'$really\ bad$', r'$bad\ \alpha$', r'$common$', r'$good$', r'$very\ good$'])

这段代码是设置坐标轴刻度


import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-3, 3, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y1的函数
y2 = x ** 2  # 写出y2的函数
plt.figure(1, figsize=(8, 5))  # 给图像序号和大小设置长为8宽为5
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
"""以x为横坐标,y1为纵坐标画图,设置线的颜色红色,线宽1.0,线的类型虚线"""
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.xlim((-1, 3))  # 设置x坐标的范围是-1到3
plt.ylim((-2, 8))  # 设置y坐标的范围是-2到8
plt.xlabel('I am x')  # 设置横坐标
plt.ylabel('I am y')  # 设置纵坐标
new_ticks = np.linspace(-1, 3, 5)
print(new_ticks)
plt.xticks(new_ticks)  # 设置横坐标为-1到3分为5个标记
plt.yticks([-2, 1, 4, 6, 8], [r'$really\ bad$', r'$bad\ \alpha$', r'$common$', r'$good$', r'$very\ good$'])
# 将纵坐标分成5种图标
plt.show()  # 将画的图显示出来,必不可少

在这里插入图片描述

5. 去除坐标轴边框和坐标轴原点化

ax = plt.gca()  # 取出画好的图给ax
ax.spines['right'].set_color('none')  # 将右边框去掉
ax.spines['top'].set_color('none')  # 将上边框去掉

这段代码是去除坐标轴边框。

ax.xaxis.set_ticks_position('bottom')  # 设置底部边框为x轴,默认也是底部边框为x轴
ax.yaxis.set_ticks_position('left')  # 设置左边边框为y轴,默认也是左边边框为y轴
ax.spines['bottom'].set_position(('data', 0))  # 将x轴经过y轴的0
ax.spines['left'].set_position(('data', 0))  # 将y轴经过x轴的0

这段代码是坐标轴原点化。

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-3, 3, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y1的函数
y2 = x ** 2  # 写出y2的函数
plt.figure(1, figsize=(8, 5))  # 给图像序号和大小设置长为8宽为5
plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--')
"""以x为横坐标,y1为纵坐标画图,设置线的颜色红色,线宽1.0,线的类型虚线"""
plt.plot(x, y2)  # 以x为横坐标,y2为纵坐标画图
plt.xlim((-1, 3))  # 设置x坐标的范围是-1到3
plt.ylim((-2, 8))  # 设置y坐标的范围是-2到8
plt.xlabel('I am x')  # 设置横坐标
plt.ylabel('I am y')  # 设置纵坐标
new_ticks = np.linspace(-1, 3, 5)
print(new_ticks)
plt.xticks(new_ticks)  # 设置横坐标为-1到3分为5个标记
plt.yticks([-2, 1, 4, 6, 8],
           [r'$really\ bad$', r'$bad\ \alpha$', r'$common$', r'$good$', r'$very\ good$'])
# 将纵坐标分成5种图标

# gca = 'get current axis'
ax = plt.gca()  # 取出画好的图给ax
ax.spines['right'].set_color('none')  # 将右边框去掉
ax.spines['top'].set_color('none')  # 将上边框去掉
ax.xaxis.set_ticks_position('bottom')  # 设置底部边框为x轴,默认也是底部边框为x轴
ax.yaxis.set_ticks_position('left')  # 设置左边边框为y轴,默认也是左边边框为y轴
ax.spines['bottom'].set_position(('data', 0))  # 将x轴经过y轴的0
ax.spines['left'].set_position(('data', 0))  # 将y轴经过x轴的0

plt.show()  # 将画的图显示出来,必不可少

在这里插入图片描述

6. 图例

plt.legend(handles=[l1, l2, ], labels=['down', 'up'], loc='best')
"""图例的设置,参数handle便于自己是手动控制,label是图线的标签,loc是设置图例的位置"""

这段代码是设置图例。

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-3, 3, 50)  # 生成-1到1的50等分数据为横坐标
y1 = 2 * x + 1  # 写出y1的函数
y2 = x ** 2  # 写出y2的函数
plt.figure(1, figsize=(8, 5))  # 给图像序号和大小设置长为8宽为5
l1, = plt.plot(x, y1, color='red', linewidth=1.0, linestyle='--', label='down')
"""以x为横坐标,y1为纵坐标画图,设置线的颜色红色,线宽1.0,线的类型虚线,设置图像标签"""
l2, = plt.plot(x, y2, label='up')  # 以x为横坐标,y2为纵坐标画图
# l1, l2, 这样写是为了让参数传递给legend函数
plt.legend(handles=[l1, l2, ], labels=['down', 'up'], loc='best')
"""图例的设置,参数handle便于自己是手动控制,label是图线的标签,loc是设置图例的位置"""
plt.xlim((-1, 3))  # 设置x坐标的范围是-1到3
plt.ylim((-2, 8))  # 设置y坐标的范围是-2到8
plt.xlabel('I am x')  # 设置横坐标
plt.ylabel('I am y')  # 设置纵坐标
new_ticks = np.linspace(-1, 3, 5)
print(new_ticks)
plt.xticks(new_ticks)  # 设置横坐标为-1到3分为5个标记
plt.yticks([-2, 1, 4, 6, 8],
           [r'$really\ bad$', r'$bad\ \alpha$', r'$common$', r'$good$', r'$very\ good$'])
# 将纵坐标分成5种图标

# gca = 'get current axis'
ax = plt.gca()  # 取出画好的图给ax
ax.spines['right'].set_color('none')  # 将右边框去掉
ax.spines['top'].set_color('none')  # 将左边框去掉
ax.xaxis.set_ticks_position('bottom')  # 设置底部边框为x轴,默认也是底部边框为x轴
ax.yaxis.set_ticks_position('left')  # 设置左边边框为y轴,默认也是左边边框为y轴
ax.spines['bottom'].set_position(('data', 0))  # 将x轴经过y轴的0
ax.spines['left'].set_position(('data', 0))  # 将y轴经过x轴的0

plt.show()  # 将画的图显示出来,必不可少

在这里插入图片描述

7. 文本标注

plt.text(-3.7, 3, r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',
         fontdict={'size': 16, 'color': 'r'})
# 设置文本的位置和内容,大小和颜色

这段代码是设置文本。

import matplotlib.pyplot as plt  # 导入matplotlib库画图
import numpy as np  # 导入numpy库产生数据

x = np.linspace(-3, 3, 50)  # 生成-1到1的50等分数据为横坐标
y = 2 * x + 1  # 写出y的函数

plt.figure(num=1, figsize=(8, 5))
plt.plot(x, y)

ax = plt.gca()
ax.spines['right'].set_color('none')  # 将右边框去掉
ax.spines['top'].set_color('none')  # 将左边框去掉
ax.xaxis.set_ticks_position('bottom')  # 设置底部边框为x轴,默认也是底部边框为x轴
ax.yaxis.set_ticks_position('left')  # 设置左边边框为y轴,默认也是左边边框为y轴
ax.spines['bottom'].set_position(('data', 0))  # 将x轴经过y轴的0
ax.spines['left'].set_position(('data', 0))  # 将y轴经过x轴的0

plt.text(-3.7, 3, r'$This\ is\ the\ some\ text. \mu\ \sigma_i\ \alpha_t$',
         fontdict={'size': 16, 'color': 'r'})
# 设置文本的位置和内容,大小和颜色

plt.show()

在这里插入图片描述

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菜yuan~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值