课程地址:网易云课堂
https://study.163.com/course/courseMain.htm?courseId=1003240004
或者:
https://morvanzhou.github.io/tutorials/data-manipulation/plt/
莫烦大神的主页:
https://morvanzhou.github.io
以下代码全都在jupyter notebook中通过
# %matplotlib qt5 #让图像显示在gui里
# %matplotlib inline #让图像显示在控制台里,默认显示在控制台
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10,10,10) #从-10到10,生成10个数字
# x 不是列表,type(x)=<class 'numpy.ndarray'>,但是类似列表
y1 = 2*x + 1
y2 = x**2
a = [1,2,3,4,5,6,7,8,9,10]
b = [1,2,3,4,5,6,7,8,9,10]
plt.plot(x,y1)
plt.plot(x,y2)
plt.plot(a,b)
plt.plot(a,b,'ro') #注意这两种方式的不同
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.figure() # 一个figure表示一张图,下面的操作都是在这个图中
plt.title('title')
plt.plot(x,y1)
plt.figure(num=3,figsize=(8,5)) # 再画一张新图,下面的操作都在新图中
plt.plot(x,y2)
plt.plot(x, y1, color='red',linewidth = 2.0, linestyle='--' ) #参数可设置颜色,线宽,风格等
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y2)
plt.plot(x, y1, color='red',linewidth = 2.0, linestyle='--' )
plt.xlim((-1,2)) # x轴之前是-3到3,现在设置为-1到2
plt.ylim((-2,3))
plt.xlabel('I am x')
plt.ylabel('I am y')
new_ticks = np.linspace(-1,2,5)
#print(new_ticks)
plt.xticks(new_ticks)
plt.yticks([-2,-1.5,-1,1.22,3],
['really bad','$\\alpha$','normal','good','really good'])
#参数是两个列表,内容要一一对应
# 输出数学符号
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.figure()
plt.plot(x,y2)
plt.plot(x, y1, color='red',linewidth = 2.0, linestyle='--' )
# 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') #将图像的下边框设置为x轴
ax.yaxis.set_ticks_position('left') #将图像的左边框设置为y轴
ax.spines['bottom'].set_position(('data',1)) #将图像的x轴放在y轴的位置1
ax.spines['left'].set_position(('data',0)) #将图像的y轴放在x轴的位置0
plt.show()
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-3,3,50)
y1 = 2*x + 1
y2 = x**2
plt.figure()
l1, = plt.plot(x,y2,label='up')
l2, = plt.plot(x, y1, color='red',linewidth = 2.0, linestyle='--',label='down')
#plt.legend(handles=[l1,l2], labels=['aaa','bbb'],loc='best') #打印两条线的图例
plt.legend(handles=[l1,l2], labels=['aaa',],loc='best') #只打印一条线的图例
# loc ='upper left','upper right','lower left','lower right'
plt.show()