基础绘图:画出默认图像
准备工作:linspace采样构造数组
import numpy as np
def f(x):
return x**3
x = np.linspace(0, 1, 50) # 在0~1中平均取50个点
y=f(x) # 操作一个元素的函数也可以操作整个数组,但math中的函数要用numpy替代
基础绘图:大致画画
import matplotlib.pyplot as plt
plt.plot(x,y)
绘图进阶:让图片更丰富
设置画布大小
plt.figure(figsize=[8,5]) # 在绘图之前设置画布大小,宽为 8 英尺,高为 5 英尺
标记x,y轴
plt.xlabel('x') # label on the x axis
plt.ylabel('y') # label on the y axix
图像范围
# 同时设置x和y轴图像范围
plt.axis([0, 3, -0.05, 0.6]) # [xmin, xmax, ymin, ymax]
# 单独设置x或y轴图像范围
plt.xlim(0,3)
plt.ylim(0,3)
图像标题
plt.title('My First Demo')
图例
plt.plot(t, y, 'b--',label='$t^2*exp(-t^2)$') # 首尾的$用于转义,得到的是规范的公式
plt.legend() # 这一行不可缺少
在一张图里同时绘制多条曲线(也可以一条一条绘制)
plt.plot(x, y1,'b-',x, y2,'ro')
多子图绘制
plt.subplot(121) # 一行两列,现在绘制第一张图
plt.plot(x,Y1,'r')
plt.subplot(122) # 一行两列,现在绘制第二张图
plt.plot(x,Y2,'b')
设置坐标轴刻度
x=[i for i in range(2000,2023)]
plt.xticks(x,rotation=45) # 旋转45度,y轴刻度同理
保存图像
plt.savefig('test.png',dpi=100)
# 还可以保存为png,jpg,pdf,svg的格式
# dpi即分辨率,可由此控制图片的大小和清晰度
设置线的类型
在plt.plot内可以添加若干参数,以对图像进行各种个性化设置,部分常用参数见下表:
颜色(color) | 蓝色 b 绿色 g 红色 r 黄色 y | 黑色 k 白色 w 蓝绿 c 红紫 m | RGB表示法 如 #2F4F4F | ||
线型(linestyle) | 实线 - | 虚线 -- | 虚点线 -. | 点线 : | 点 . |
点型(marker) | 圆形 o | 方形 s | 加号 + | 叉形 x | |
标记大小(markersize) | markersize=10 | ||||
透明度(alpha) | alpha=0.5 |
绘制不连续函数
def H(x):
return (0 if x < 0 else 1)
# 对于上述函数,如果x是数组,则会报错
# 补救方法一 多写一个函数
def H_lppo(x):
r=x.copy()
for i in range(len(x)):
r[i]=H(x[i])
return r
y=H_loop(x)
# 补救方法二 用where
def Hv(x):
return np.where(x<0,0.0,1.0)
PS:展开讲讲where:
#接收一个参数,返回符合条件的下标
a=np.array([1,2,3,4,5])
idx=np.where(a>2) # idx=array([2,3,4])
b=a[idx] # b=array([3,4,5])
#接收三个参数,用于三目运算
y=np.array([1,2,3,4,5])
y=np.where(y%2==0,y+1,y-1)# 将奇数转换为偶数,偶数转换为奇数(如果是偶数,则返回+1后的值,反之-1)
😍以上就是本文的全部内容,欢迎关注Lane,和我一起成长!