1.安装malplotlib
我用的是pyhton2.7,由这个网页开始http://matplotlib.org/users/installing.html,上面有详细的提示,都是在cmd中输入的,先得安装pip,这个2.7里没有;而安pip又得先安setuptools..............
这个网站或许有用,忘记了http://www.tuicool.com/articles/eiM3Er3/
好吧,就是按照要求,不懂的百度,一步一步安装完成了。
2.使用
下面是数据挖掘书中某道题的一问
#画age,fat的散点图和Q-Q图,在Q-Q图中画出回归直线
import matplotlib.pyplot as plt
import math
from numpy import arange
age=[23,23,27,27,39,41,47,49,50,52,54,54,56,57,58,58,60,61];
fat=[9.5,26.5,7.8,17.8,31.4,25.9,27.4,27.2,31.2,34.6,42.5,28.8,33.4,30.2,34.1,32.9,41.2,35.7];
#求距离和
def get_distance(k,b):
ii=arange(0,18,1);
sum=0;
for i in ii:
sum+=abs(age[i]*k-fat[i]+b)/math.sqrt(k*k+1);
return sum;
#遍历获取k和b的最佳值,使所有点到该直线的距离和最小
def get_slope():
min=10000;
#获取一个等间距数组
ks=arange(0,1.1,0.1);
bs=arange(0,21,1);
arr=[];
for k in ks:
for b in bs:
sum=get_distance(k,b);
if sum<min:
min=sum;
kmin=k;
bmin=b;
ks=arange(0,10,0.1);
bs=arange(-21,0,1);
for k in ks:
for b in bs:
sum=get_distance(k,b);
if sum<min:
min=sum;
kmin=k;
bmin=b;
arr.append(kmin);
arr.append(bmin);
return arr;
#声明一个绘图界面
fig1=plt.figure(1);
#将界面分成1行2列,并且占用第一列
plt.subplot(121);
plt.plot(age,fat,'ro');
plt.xlabel('age');
plt.ylabel('fat');
plt.xlim(0.0,65.0);
plt.ylim(0.0,45.0);
plt.title('scatter plot');
#占用第二列
plt.subplot(122);
#排序
age.sort();
fat.sort();
plt.plot(age,fat,'ro');
plt.xlabel('age');
plt.ylabel('fat');
plt.xlim(0.0,65.0);
plt.ylim(0.0,65.0);
x=arange(0,65,1);
arr=get_slope();
#关于x的函数
y=arr[0]*x+arr[1];
plt.plot(x,y);
#图像上的标题,一直不能用中文,没解决
plt.title('quantile-quantile plot');
plt.show();