美文网首页Matplotlib
python之可视化Matplotlib模块

python之可视化Matplotlib模块

作者: SlashBoyMr_wang | 来源:发表于2018-11-07 19:27 被阅读33次

    本文要讲的是Matplotlib,一个强大的Python可视化库。通过模块,轻松实现曲线图、散点图、折线图、直方图、柱状图、饼图等。

    一、曲线图

    绘制单条曲线:
      x = [1,2,3,4,5,6,7,8,9,10]
      y = [10,9,8,7,6,5,4,3,2,1]
      plt.plot(x,y)
    注意:y,x轴的值必须为数字

    绘制抛物线:
      x = np.arange(-np.pi,np.pi,0.1)
      y = x**2
      plt.plot(x,y)

    绘制正弦曲线图:
      x = np.linspace(-np.pi,np.pi,100)
      y = np.sin(x)
      plt.plot(x,y)

    包含多个曲线的图:
    1、连续调用多次plot函数
      plt.plot(x,y)
      plt.plot(x+2,y+2)
    2、也可以在一个plot函数中传入多对X,Y值,在一个图中绘制多个曲线
      plt.plot(x,y,x-1,y+1)

    plt.subplot(row,col,loc)
    将多个曲线图绘制在一个table区域中:对象形式创建表图
      a=plt.subplot(row,col,loc) 创建曲线图 rol col可以决定table的大小
      a.plot(x,y) 绘制曲线图

    屏幕快照 2018-11-07 下午5.44.30.png

    网格线 plt.grid(XXX)
    参数:
      axis:轴向
      color:支持十六进制颜色
      linestyle: -- -. :样式
      alpha:透明度
    使用plt绘制:
    plt.plot(x,y)
    plt.grid(color='red',linestyle=':',alpha=0.5)
    使用对象形式设置网格:
    ax = plt.subplot(111)
    ax.plot(x,y)
    ax.grid(linestyle='--')

    设置坐标轴界限
      axis方法:设置x,y轴刻度值的范围
      plt.axis([xmin,xmax,ymin,ymax])
    关闭坐标轴
      plt.axis('off')
    设置画布比例:plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍

    plt的xlabel方法、ylabel方法、 title方法
    参数介绍:
      s 标签内容
      color 标签颜色
      fontsize 字体大小
      rotation 旋转角度
    对象方法set_xlabel/ylabel()

    图例
    legend方法
    两种传参方法:
      1.分别在plot函数中增加label参数,再调用plt.legend()方法显示
        plt.plot(x,label='AAA')
        plt.legend()
      2.直接在legend方法中传入字符串列表
        put.plot(x)
        plt.plot(y)
        plt.legend(['BBB','AAA'])
    legend的参数
      loc参数:
        loc参数用于设置图例标签的位置,一般在legend函数内
        matplotlib已经预定义好几种数字表示的位置
      ncol参数:
        ncol控制图例中有几列,在legend中设置ncol

    图像保存:
    使用figure对象的savefig函数来保存图片
    fig = plt.figure()---必须放置在绘图操作之前
    figure.savefig的参数选项:
      filename:
        含有文件路径的字符串或Python的文件型对象。图像格式由文件扩展名推断得出,例如,.pdf推断出PDF,.png推断出PNG (“png”、“pdf”、“svg”、“ps”、“eps”……)
      dpi:
        图像分辨率(每英寸点数),默认为100
      facecolor
        打开保存图片查看 图像的背景色,默认为“w”(白色)

    设置plot的风格和样式:
      plot语句中支持除X,Y以外的参数,以字符串形式存在,来控制颜色、线型、点型等要素,语法形式为:
      plt.plot(X, Y, 'format', ...)
    -- 颜色
      参数color或c
    -- 透明度
      alpha参数
    -- 线型
      参数linestyle或ls
    -- 线宽
      linewidth或lw参数
    -- 点型
      marker 设置点形
      markersize 设置点形大小

    二、直方图

    plt.hist(x):
    是一个特殊的柱状图,又叫做密度图。
    【直方图的参数只有一个x!!!不像条形图需要传入x,y】
    plt.hist()的参数
      bins
        直方图的柱数,可选项,默认为10
      color
        指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
      orientation
        通过设置orientation为horizontal创建水平直方图。默认值为vertical

    三、条形图

    plt.bar(x,y):
    plt.bar()垂直条形图
      参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度。
    条形图有两个参数x,y
      width 纵向设置条形宽度
      height 横向设置条形高度
    plt.barh()水平条形图

    四、饼图

    plt.pie(x)
    饼图也只有一个数据参数x
    饼图适合展示各部分占总体的比例,条形图适合比较各部分的大小

    饼图阴影、分裂等属性设置
      labels参数设置每一块的标签;
      labeldistance参数设置标签距离圆心的距离(比例值)
      autopct参数设置比例值小数保留位(%.3f%%);
      pctdistance参数设置比例值文字距离圆心的距离
      explode参数设置每一块顶点距圆心的长度(比例值,列表);
      colors参数设置每一块的颜色(列表);
      shadow参数为布尔值,设置是否绘制阴影
      startangle参数设置饼图起始角度

    五、散点图

    scatter(x,y)
      散点图:因变量随自变量而变化的大致趋势
      散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!
      plt.scatter(x,y,marker='d',c="rbgy") 设置不同的散点颜色

    六、简单了解机器学习实现线性回归

    • 导入sklearn,建立线性回归算法模型对象
        from sklearn.linear_model import LinearRegression
        linear = LinearRegression()
        样本集:用于对机器学习算法模型对象进行训练。样本集通常为一个DataFrame。
        特征数据:特征数据的变化会影响目标数据的变化。必须为多列。
        目标数据:结果。通常为一列。
    • 使用样本数据对模型进行训练
        linear.fit(near_citys_dist.reshape(-1,1),near_citys_max_temp)
    • 对模型进行精准度的评分
        linear.score(near_citys_dist.reshape(-1,1),near_citys_max_temp)
    • 使用模型进行预测
        x = np.array([65,44,12,99]).reshape(-1,1)
        linear.predict(x)
    • 绘制回归曲线
        x = np.linspace(0,100,num=100)
        y = linear.predict(x.reshape(-1,1))
        plt.scatter(x,y)

    线性回归详细案例和素材详见github:
    https://github.com/wangjifei121/Data_analysis_case3

    相关文章

      网友评论

        本文标题:python之可视化Matplotlib模块

        本文链接:https://www.haomeiwen.com/subject/spnvxqtx.html