在(一)中,我们学习了如何画函数图像,这次讲解如何绘制其他类型图像
1.折线图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] # 设置中文字体
x = range(0,20)
y = [1, 0, 1, 1, 2, 4, 3, 2, 3, 4, 4, 5, 6, 5, 4, 3, 3, 1, 1, 1]
plt.figure(figsize=(10, 8), dpi=80)# 设置图形大小
plt.plot(x, y)
_xtick_labels = ['{}s'.format(i) for i in x]# 设置刻度表
plt.xticks(x, _xtick_labels)
plt.xlabel('时间')#x坐标轴名称
plt.ylabel('速度 m/s')#y坐标轴名称
plt.grid() # 设置网格
plt.show()
2.散点图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
a = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 1]
b = [26, 26, 19, 21, 16, 17, 20, 19, 24, 22, 22, 33, 14, 13, 19, 22, 26, 26, 19, 21, 16, 17, 20, 19, 24, 22, 22, 33, 14,13, 19]
x_3 = range(1, 32)
x_10 = range(51, 82)
plt.figure(figsize=(20, 8), dpi=80)
plt.scatter(x_3, a, label="3月份温度")
plt.scatter(x_10, b, label="10月份温度")
plt.legend() # 显示图例
# 调整x轴刻度
_x = list(x_3)+list(x_10)
_xticks_labels = ["3月{}日".format(i) for i in x_3]
_xticks_labels += ["10月{}日".format(i) for i in x_10]
plt.xticks(_x[::5], _xticks_labels[::5], rotation=45)
plt.xlabel('时间')
plt.ylabel('温度')
plt.title('北京3月和10月的温度分布')
plt.show()
3.条形图
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
a = ['微积分', '概率论', '近代史', 'C语言', '大学物理', '英语']
b = [96.58, 94.23, 97.25, 96.55, 95.68, 98.73]
plt.bar(range(len(a)), b)
plt.xticks(range(len(a)), a)
plt.ylim(ymin=94,ymax=99)
plt.locator_params('y',nbins=6)
plt.xlabel('学科名')
plt.ylabel('及格率/%')
plt.show()
4.立体图
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D #用来给出三维坐标系
figure = plt.figure()#打开一个画布
axes = Axes3D(figure)#画出三维坐标系
X = np.arange(-10, 10, 0.25) #限定x和y的画图范围
Y = np.arange(-10, 10, 0.25)
X, Y = np.meshgrid(X, Y)#限定图形的样式是网格线的样式
Z = np.cos(((X**2) + Y**2)**(1/6))#给出二元函数的解析式
axes.plot_surface(X, Y, Z,cmap='rainbow')#绘制曲面,采用彩虹色着色
plt.show()#图形可视化
5.双坐标轴
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,20)
y1= x**2
y2= np.log(x)
plt.plot(x,y1,c='red',ls='-')
#添加一个坐标轴
plt.twinx()
plt.plot(x,y2,c='blue',ls='--')
plt.show()