使用matplotlib可以绘制许多的图形今天给大家简单介绍一下
下面的代码有很详细的注释,我就不过多解释了
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import font_manager
plt.rcParams['font.sans-serif'] = ['SimHei']
# # my_font = font_manager.FontProperties(fname='C:\Windows\Fonts')
X = np.linspace(-np.pi,np.pi,100)
plt.figure(figsize=(6,5))
plt.subplot(111)# 第一个参数表示行,第二个参数表示列,第三个参数表示当前位于图例中的位置
Y = np.sin(X)
plt.xlabel(u'X数值')
plt.ylabel(u'Y数值')
plt.title('函数图像')
# 添加文字:第一个参数是轴坐标,第二个参数是Y轴坐标,以数据的刻度为基础
plt.text(0.0,0.5,'dont move')
# 添加标注
# xy:标注箭头想要指示的点,xytext:描述信息的坐标
plt.annotate('note!!',xy=(-np.pi,0),xytext=(-np.pi,2),fontsize=16,
arrowprops=dict(facecolor='black',shrink=0.01))
plt.plot(X,Y,c='r',lw=3,ls=':',label='X2函数')
plt.xlim(-np.pi,np.pi)
plt.ylim(-1,1)
plt.legend()
plt.show()
柱状图:
k = 10
x = np.arange(k)
y = np.random.rand(k)
for i in range(10):
plt.text(x[i],y[i],'%.2f' % y[i],ha='center',va='bottom')
plt.annotate('note!!', xy=(3,y[3] ), xytext=(3,y[3]+0.3), fontsize=16,
arrowprops=dict(facecolor='black',shrink=0.01))
plt.bar(x,y)
plt.legend()
plt.show()
柱状图的复杂形式
a = ['猩球崛起3:终极之战','敦刻尔克','蜘蛛侠:英雄归来','战狼2']
b_16 = [15746,312,4497,319]
b_15 = [12357,156,2045,168]
b_14 = [2358,399,2358,362]
bar_width = 0.2
x_14 = list(range(len(a)))
x_15 = [i+bar_width for i in x_14]
x_16 = [i+bar_width*2 for i in x_14]
# 设置图形大小
plt.figure(figsize=(20,8),dpi=80)
ax = plt.subplot(2,1,1)
ax.set_title('Counter')
ax.set_xlabel("X")
plt.bar(range(len(a)),b_14,width=bar_width,label='9月14日')
plt.bar(x_15,b_15,width=bar_width,label='9月15日')
plt.bar(x_16,b_16,width=bar_width,label='9月16日')
plt.legend()
plt.xticks(x_15,a)
plt.show()
大家在自己写代码的时候会发现,这张图一共画了三次,每次画一种颜色的柱状图
matplotlib还可以画出3D图,但是这里就不做太多的解释,下次给大家介绍一个更加方便快捷的画图工具pyecharts,直接pip install pyecharts 就可以下载