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

目录

  • 1. matplotlib库和numpy库
  • 2. matplotlib绘图的简单示例
  • 3. 设置窗口的尺寸比例,线宽和颜色
  • 4. 坐标轴设置
  • 5. 去除坐标轴边框和坐标轴原点化
  • 6. 图例
  • 7. 文本标注

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()必不可少,如果少了图像不显示。
python基础知识(十一):matplotlib的基本用法一_第1张图片
当然,绘制两幅图也可以。

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()  # 将画的图显示出来,必不可少

python基础知识(十一):matplotlib的基本用法一_第2张图片
python基础知识(十一):matplotlib的基本用法一_第3张图片

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()  # 将画的图显示出来,必不可少

python基础知识(十一):matplotlib的基本用法一_第4张图片
python基础知识(十一):matplotlib的基本用法一_第5张图片

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()  # 将画的图显示出来,必不可少

python基础知识(十一):matplotlib的基本用法一_第6张图片

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()  # 将画的图显示出来,必不可少

python基础知识(十一):matplotlib的基本用法一_第7张图片

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()  # 将画的图显示出来,必不可少

python基础知识(十一):matplotlib的基本用法一_第8张图片

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

python基础知识(十一):matplotlib的基本用法一_第9张图片

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