【python VS vba】(8) 在python使用matplotlib库来画图

2023-12-13 11:54:29

目录

1 matplotlib的基本用法

1.1 需要用到的模块,需要实现安装,且导入

1.2 画布 figure

1.2.1 figure的官方解释

1.2.2? 画布语法

1.2.3? 必须先获取至少1个figure:

1.2.4 figure的生效范围与多个figure

1.2.5 可以设置多个画布

1.3? 设置函数图形

1.4 画图

1.5 显示图像

2 用matplotlib 画函数图形

2.1 在一个画布里画多个图形

(1张画布,1个坐标轴系,多个图形叠在一起)

2.2 在多个画布里,分别画1个图形

(多张画布,多个坐标轴系,分别包含1个图形)

2.3? 一个画布里作图多个子图,且按表格排列好

(多张画布,多个坐标轴系,分别包含1个图形,且按内部序号排列)

2.3.1 用plt.subplot()方式绘制多子图

3? 关于坐标轴的各种设置


1 matplotlib的基本用法

1.1 需要用到的模块,需要实现安装,且导入

import numpy as np
import matplotlib.pyplot as plt?

  • 错误写法?import matplotlib as plt 会造成报错?TypeError: 'module' object is not callable

1.2 画布 figure

1.2.1 figure的官方解释

  • 1.the Figure, which contains all the plot elements.
  • 2.The top level container for all the plot elements.
  • figure是一顶级的容器,包含了绘图所有的元素。
  • 我把这个理解为画布

1.2.2? 画布语法

画布语法:

  • fig1=plt.figure(num=1,figsize=(3,3))
  • num=1? ? ? ? ? ?编号
  • figsize=(3,3)? ?画布大小

1.2.3? 必须先获取至少1个figure:

  • 需要画图形和现实图形,首先必须需要获取figure才可以
  • 获取figure的方式是:fig = plt.figure()。

1.2.4 figure的生效范围与多个figure

  • 一个figure到下一个figure语句前之间的区域,属于该figure的作图管辖范围;
  • 而如果没有下一个figure时,则到plt.show()之间的区域,属于该figure的作图管辖范围。
  • 在一个figure的作图管辖范围的图像都会展示在同一个figure绘画弹框中。

1.2.5 可以设置多个画布

  • 如果需要图像在多个不同的figure弹框中展示,则需要获取多个figure才可以
  • 获取figure的方式是:fig = plt.figure()
  • 设置多个画布的时候以创建 plt.figure() 为分界

1.3? 设置函数图形

函数就是形如 y=f(x)的样式

  • 自变量:x=np.linspace(-5,5, 10)
  • 因变量:y=x*2+1

1.4 画图

  • # 绘图
  • plt.plot(x, y)
  • plt.plot(x对应自变量:一般对应X轴, y对应因变量:一般对应y轴)

1.5 显示图像

  • # 显示图像
  • matplotlib作图,要显示图像,必须调用plt.show(), 否则不显示
  • plt.show()

2 用matplotlib 画函数图形

2.1 在一个画布里画多个图形

(1张画布,1个坐标轴系,多个图形叠在一起)

import numpy as np
import matplotlib.pyplot as plt

fig1=plt.figure(num=1)

x=np.linspace(-5,5, 10)
y=x*2+1
y2=x**2

# 绘图
plt.plot(x, y)
plt.plot(x, y2)

# 显示图像
plt.show()

2.2 在多个画布里,分别画1个图形

(多张画布,多个坐标轴系,分别包含1个图形)

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(-5,5, 10)

fig1=plt.figure(num=1,figsize=(3,3))
y=x*2+1
# 绘图
plt.plot(x, y)

#新开一个画布
fig2=plt.figure(num=2,figsize=(5, 5))
y2=x**2
# 绘图
plt.plot(x, y2)

# 显示图像
plt.show()


?

2.3? 一个画布里作图多个子图,且按表格排列好

(多张画布,多个坐标轴系,分别包含1个图形,且按内部序号排列)

2.3.1 用plt.subplot()方式绘制多子图

  • plt.subplot()方式绘制多子图,只需要传入简单几个参数即可:
  • plt.subplot(rows, columns, current_subplot_index)
  • 形如plt.subplot(2, 2, 1),其中:
  1. rows表示最终子图的行数;
  2. columns表示最终子图的列数;
  3. current_subplot_index表示当前子图的索引;
  4. 这几个参数是可以连写在一起的,同样可以被识别
  5. 例如:上面的plt.subplot(2, 2, 1),写成plt.subplot(221),两者是等价的。

import numpy as np
import matplotlib.pyplot as plt

# 子图1,散点图
plt.subplot(2, 2, 1)
plt.scatter(np.linspace(-2, 2, 5), np.random.randn(5))

# 子图2,折线图+网格
plt.subplot(2, 2, 2)
plt.plot(np.linspace(-2, 2, 5), np.random.randn(5))
plt.grid(True)

# 子图3,柱状图
plt.subplot(2, 2, 3)
x = np.linspace(0, 5, 5)
plt.bar(x, np.random.random(5))
plt.xticks(np.arange(0, 6))

# 子图4,饼图
plt.subplot(2, 2, 4)
plt.pie(np.random.random(5), labels=list("ABCDE"))

plt.show()

3? 关于坐标轴的各种设置

  • 坐标轴描述
  • 坐标轴范围设置
  • 坐标轴刻度
  • 挪动坐标轴

3.1 坐标轴的描述

  • plt.xlabel("X axis")
  • plt.ylabel("Y axis")

3.2 坐标轴范围设置

  • plt.xlim((-10,10))
  • plt.ylim((-10,10))

3.3 坐标轴的刻度设置

  • # 设置坐标轴刻度
  • plt.xticks([-4, -2, 0, 2, 4])
  • plt.yticks(np.linspace(-10, 10, 10))

import numpy as np
import matplotlib.pyplot as plt

fig1=plt.figure(num=1)

x=np.linspace(-5,5, 10)
y=x*2+1
y2=x**2

# 设置坐标轴描述
plt.xlabel("X axis")
plt.ylabel("Y axis")

# 设置坐标轴范围
plt.xlim((-10,10))
plt.ylim((-10,10))

# 设置坐标轴刻度
plt.xticks([-4, -2, 0, 2, 4])
plt.yticks(np.linspace(-10, 10, 10))



# 绘图
plt.plot(x, y)
plt.plot(x, y2)

# 显示图像
plt.show()

文章来源:https://blog.csdn.net/xuemanqianshan/article/details/134965107
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。