写在前面的话
省得每次都去百度,于是就摘抄一下Python画图方法和代码。
画二维散点图
import numpy as np
import matplotlib.pyplot as plt
#假设已经定好data_pos = ...
x = data_pos[:, 0]
y = data_pos[:, 1]
plt.ylim(ymax=20, ymin=0) #限定Y轴的范围
plt.plot(x, y, 'ro') # ro表示用红色圆点来表示点
plt.show()
一个很不具代表性的散点图如下:
image.png
画直方图
import numpy as np
import matplotlib.pyplot as plt
#假设已经定好data_pos = ...
x = data_pos[:, 0]
y = np.arange(0, 20, 1)
#上面 y实际是统计的区域段,这里为0-1,1-2,2-3,3-4这样以1为步长,一直到19-20
plt.hist(x, y, histtype='bar', rwidth=0.8)
image.png
画三维散点图
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
#假设已经定好data_pos = ...
fig = plt.figure()
ax = Axes3D(fig)
x = data_pos[:, 0]
y = data_pos[:, 1]
z = data_pos[:, 2]
ax.scatter(x, y, z, c='r')
# 设置X、Y、Z轴的名字显示,用刺眼的红色
ax.set_zlabel('Z', fontdict={'size': 15, 'color': 'red'})
ax.set_ylabel('Y', fontdict={'size': 15, 'color': 'red'})
ax.set_xlabel('X', fontdict={'size': 15, 'color': 'red'})
plt.show()
画三维曲面
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = Axes3D(fig)
# 假设曲面方程为coef[0]*X + coef[1]*Y + coef[2]*z + coef[3]= 0
# 画这个曲面要先确定好其中两个轴的取值范围,然后z通过曲面方程公式表示出来
X = np.arange(-10, 100, 1)
Y = np.arange(-10, 100, 1)
coef = np.array([1,2,3,4])
X, Y = np.meshgrid(X, Y)
z = (-coef[3]- coef[0]*X - coef[1]*Y)/coef[2]
ax.plot_surface(X, Y, z, rstride=1, cstride=1, cmap='rainbow')
plt.show()