【python VS vba】(8) 在python使用matplotlib库来画图
2023-12-13 11:54:29
目录
(多张画布,多个坐标轴系,分别包含1个图形,且按内部序号排列)
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)
,其中:
rows
表示最终子图的行数;columns
表示最终子图的列数;current_subplot_index
表示当前子图的索引;- 这几个参数是可以连写在一起的,同样可以被识别
- 例如:上面的
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!