用matplotlib.pyplot法
基本用法
画简单的函数图像:
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-1,1,50)
y=2*x**2+1
plt.plot(x,y)
plt.show()
图像效果:
Figure的使用:
figure就是不同的图片窗口,一个figure管它下面的一段代码
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(-3,3,50)
y1=2*x**2+1
y2=x**3-1
plt.figure() # 先定开头,后面的内容都是和这个figure有关
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5))
# 第二个figure,就是第二个图片窗口,可以通过num=设置编号数字,size设置长宽大小
plt.plot(x,y2)
plt.plot(x,y1,color='red',linewidth=2.0,linestyle='--') # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式
plt.show()
图片效果:
坐标轴操作
坐标轴设置1:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 100)
y1 = 2 * x ** 2 + 1
y2 = x ** 3 - 1
plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y2)
plt.plot(
x, y1, color="red", linewidth=2.0, linestyle="--"
) # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式
plt.xlim((-3, 4)) # x轴显示数据范围
plt.ylim((-3, 5)) # y轴显示数据范围
plt.xlabel("I am X") # x轴名称
plt.ylabel("I am Y") # y轴名称
# 坐标轴标尺转换
new_ticks = np.linspace(-1, 2, 5) # 从-1到2,平均取5个刻度[-1. -0.25 0.5 1.25 2. ]
plt.xticks(new_ticks)
plt.yticks(
[-3, -2, 0, 0.3, 1],
["bad", "normal", r"$good\ \alpha$", r"$well\ done$", "excellent"],
)
# 对应替代数字标尺,并且会扩大显示范围
# 正则写法--变斜体好看一点,反斜杠转译,直接写空格无法识别,alpha可转译,
plt.show()
图片效果:
坐标轴(图片框架)操作:
# gca='get current axis'
ax=plt.gca()
# 把坐标轴(脊梁)拿出来
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
效果:(top和right框架被none了)
还可以移动x和y轴:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3, 3, 100)
y1 = 2 * x ** 2 + 1
y2 = x ** 3 - 1
plt.figure(num=3, figsize=(8, 5))
plt.plot(x, y2)
plt.plot(
x, y1, color="red", linewidth=2.0, linestyle="--"
) # 一个figure可以同时把两个函数画进来,且可以设置颜色粗细样式
plt.xlim((-3, 4)) # x轴显示数据范围
plt.ylim((-3, 5)) # y轴显示数据范围
plt.xlabel("I am X") # x轴名称
plt.ylabel("I am Y") # y轴名称
# 坐标轴标尺转换
new_ticks = np.linspace(-1, 2, 5) # 从-1到2,平均取5个刻度[-1. -0.25 0.5 1.25 2. ]
plt.xticks(new_ticks)
plt.yticks(
[-3, -2, 0, 0.3, 1],
["bad", "normal", r"$good\ \alpha$", r"$well\ done$", "excellent"],
)
# 对应替代数字标尺,并且会扩大显示范围
# 正则写法--变斜体好看一点,反斜杠转译,直接写空格无法识别,alpha可转译,
# gca='get current axis'
ax=plt.gca()
# 把坐标轴(脊梁)拿出来
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.xaxis.set_ticks_position('bottom') # 让bottom轴可以动起来,把x轴设置成bottom轴了
ax.yaxis.set_ticks_posit