Draw
导包:
import numpy as np
from matplotlib import pyplot as plt
from pylab import mpl #字体包
常规设置
1.窗体大小设置: fig = plt.figure(figsize=(10,7.5))
2.数组定义: x = np.arange(-20,20,0.5) # 以0.5为间隔
x = np.linspace(0, 2 * np.pi, 32, endpoint=True) #linspace,第三个元素指定元素个数
3.title设置: plt.title("This is title")
4.图片保存: plt.savefig("test.png",dpi = 500)
5.图片显示: plt.show()
6.label: plt.xlabel("x", fontsize = 10) plt.ylabel("y", fontsize = 10)
7.刻度: plt.xticks(fontsize=10) plt.yticks(fontsize=15)
8.网格 plt.grid(alpha=1)
9.字体: mpl.rcParams['font.sans-serif'] = ['FangSong']
10.图例 plt.legend() # 依附于label值
2D绘制
bar用于画条形图,plot用于画线性图
线型图:(一图多线)
plt.plot(X, C, 'go--')
plt.plot(X,S, color='green', marker='o', linestyle='dashed')
注意color值和marker值,marker属性参照:https://www.cnblogs.com/lfri/p/12248629.html
--------------------------------------------------------------------------------
柱状图:
x = [], y = []
plt.bar(x,y,colot="c")
堆叠柱状图
x = [], a = [], b = []
plt.bar(x, a, label='a', width=0.5)
plt.bar(x, b, bottom=a, label='b', width=0.5) #注意bottom的值,用于堆叠
# 添加数据标签
for a, b in zip(x, y):
plt.text(a, b + 0.05, '%.0f' % b, ha='center', va='bottom', fontsize=10)
子图
plt.subplot(221) # 两行两列第一幅图
plt.plot(X,C)
plt.subplot(2,2,2) #可以隔开,也可以不隔开
plt.plot(X,S)
plt.subplot(212)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
3D绘制
fig = plt.figure(figsize=(10, 7.5))
ax3 = plt.axes(projection='3d') # 定义3D
xx = np.arange(-20, 20, 0.5)
yy = np.arange(-20, 20, 0.5)
X, Y = np.meshgrid(xx, yy) # 将两个一维数组变为二维矩阵
Z = X * Y ** 2 # 定义公式
ax3.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap='rainbow') #作图