import numpy as np
import matplotlib.pyplot as plt
N = 1000
x = np.random.randn(N)
y = np.random.randn(N)
plt.scatter(x, y)
plt.show()
- c 点的颜色或颜色序列,默认蓝色。其它如c = ‘r’ (red); c = ‘g’ (green); c = ‘k’ (black) ; c = ‘y’(yellow)
- plt.plot() 绘制线性图,plt.scatter() 散点图
- 绘制3D图时,如果有报错,projection=’3d’相关有报错的话使用如下from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=Axes3D(fig)
《机器学习实战》书籍中第一章 KNN算法 约会的数据集三维显示代码
import numpy as np
from sklearn import preprocessing
import matplotlib as mpl
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def data_display(data_path):
mpl.rcParams['font.sans-serif'] = [u'SimHei'] # 解决中文显示问题
mpl.rcParams['axes.unicode_minus'] = False #用来正常显示负号
#在MAC上不行
data = np.loadtxt(data_path)[:, 0]
pre_data = preprocessing.scale(data)
data2 = np.loadtxt(data_path)[:, 1]
data3 = np.loadtxt(data_path)[:, 2]
data4 = np.loadtxt(data_path)[:, 3]
all_data = np.column_stack((pre_data, data2, data3, data4))
pre_data3 = all_data[all_data[:, 3] == 3]
x3 = pre_data3[:, 0]
y3 = pre_data3[:, 1]
z3 = pre_data3[:, 2]
pre_data2 = all_data[all_data[:, 3] == 2]
x2 = pre_data2[:, 0]
y2 = pre_data2[:, 1]
z2 = pre_data2[:, 2]
pre_data1 = all_data[all_data[:, 3] == 1]
x1 = pre_data1[:, 0]
y1 = pre_data1[:, 1]
z1 = pre_data1[:, 2]
ax = plt.figure().add_subplot(111, projection='3d')
ax.scatter(x3, y3, z3, c='r', label=u'极具魅力')
ax.scatter(x2, y2, z2, c='g', label=u'一般魅力')
ax.scatter(x1, y1, z1, c='y', label=u'不喜欢')
plt.legend(loc='upper right')
ax.set_xlabel(u'飞行')
ax.set_ylabel(u'游戏')
ax.set_zlabel(u'冰激凌')
plt.grid() #添加网格
plt.show()
if __name__ == '__main__':
data_display('datingTestSet2.txt')
在linux系统(centos)下如何使用matplotlib画图
运行到画图模块报错提示:
_tkinter.TclError: no display name and no $DISPLAY environment variable
没有安装画图显示的相关东西。
可以不用安装,修改画图配置,把画出的图保存下来再查看。
linux没有GUI的情况下使用matplotlib绘图:
import matplotlib as mpl
mpl.use(‘Agg’)
plt.plot(x,y)
plt.savefig(“/home/yourname/picFaster.jpg”)
import matplotlib as mpl
mpl.use(‘Agg’)
需要添加在import matplotlib.pyplot之前,否则无效
import matplotlib as mpl
mpl.use(‘Agg’)
import matplotlib.pyplot as plt
使用 %pylab 可以查看matplotlib后端用的是什么
别人写的不错的matplotlib 入门文章:
https://www.cnblogs.com/xubing-613/p/5895948.html