首页 > 编程语言 > 详细

python学习笔记(14):可视化分析

时间:2019-01-02 11:43:05      阅读:198      评论:0      收藏:0      [点我收藏+]

一、Matplotlib

  1.用于创建出版质量图表的绘图工具库

  2.目的的为Python构建一个Matlab式的绘图接口

  3.import matplotlib.pyplot as plt:pyplot模块包含了常用的matplotlib API函数

  4.figure

    (1)Matplotlib的图像均位于figure对象中,创建figure:plt.figure()

#引入 matplotlib包
import matplotlib.pyplot as plt
%matplotlib inline

#创建figure
fig = plt.figure()

  5.Subplot

    (1)fig.add_subplot(a,b,c)

      a,b表示将fig分割成axb的区域,c表示当前选中要操作的区域,注意编号从1号开始

      返回的是AxesSubplot对象

      plot绘图的区域是最后一次指定的subplot的位置

      在指定的sublot里结合scipy绘制统计图

#在一张图上做子图
ax1 = fig.add_subplot(2,2,1)
ax2= fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,4)
ax4 = fig.add_subplot(2,2,4)

#在subplot上来作图
import numpy as np
random_arr = np.random.randn(100) #生成100个随机数随机分布

#print random_arr
#默认是在最后一次使用subplot的位置上作图,但是在jupyter里是无效的
plt.plot(random_arr) #这里默认作的是线图
plt.show()

    (2)直方图  hist;s散点图scatter;柱状图 bar;矩阵绘图plt.imshow()

#在指定的subplot上来绘图
import scipy as sp 
from scipy import stats

x = np.linspace(-5,15,50)   #这里表示生成一组数,数据的范围是从-5到15,将数据平均分成50份
print(x.shape)  #打印出数据的分布以及数据的大小
print(x)

#绘制高斯分布,下面的这个x是x轴,sp.stats.norm.pdf是y轴
plt.plot(x,sp.stats.norm.pdf(x=x,loc = 5,scale=2))   

#绘制叠加直方图 sp.stats.norm.rvs是生成一个正太分布的直方图,将数据分为50个小组,指定颜色,指定透明度
plt.hist(sp.stats.norm.rvs(loc=5,scale=2,size=200),bins=50,normed=True,color=red,alpha=0.5)
plt.show()   
#绘制直方图
plt.hist(np.random.randn(100),bins=10,color=b,alpha=0.3)
plt.show()

    (3)散点图scatter

#绘制散点图,x是一个向量,y也是一个向量
x = np.arange(50)
y = x + 5*np.random.rand(50)
plt.scatter(x,y)

    (4)柱状图bar

#柱状图,这个图包括了常规作图的基本的元素
x= np.arange(5)  #要生成5个柱子,就需要生成5个坐标
#下面需要绘制两个柱状图,np.random.randint(1,25,size=(2,5))表示生成从1到25的随机整数
#最后生成的形状是2行5列的形状
y1,y2=np.random.randint(1,25,size=(2,5))
print(x)
print(y1,y1)  #生成的是1到25之间的随机整数,生成的大小是5列的数据
print(type(y1))   #<class numpy.ndarray>
print(y2,y2)
width=0.25    #指定柱子的宽度为0.25
ax = plt.subplot(1,1,1)  #生成1x1的图,现在在1的位置上
ax.bar(x,y1,width,color=r) #这个地方先画第一组
ax.bar(x+width,y2,width,color=g)  #因为现在0,1,2,3,4位置被占据了,现在再在原来的位置上作图会有叠加,挪动的位置就是前面柱子的宽度
ax.set_xticks(x+width)  # 将x轴的标记挪动width宽度
ax.set_xticklabels([a,b,c,d,e])  #这列设置xlabel的标签
plt.show()

#xticks,yticks
#xlable,ylable
#x_lim,y_lim
#title

    (5)矩阵绘图 plt.imshow():混淆矩阵,三个维度的关系,通过颜色来进行分析

import numpy as np

#矩阵绘图
m = np.random.rand(10,10)
print(m)
#interpolation=nearest输出的时候默认的差值的方法,cmap=plt.cm.ocean设置蓝色的主题
#在机器学习中主要用于绘制混淆矩阵,三分类问题,识别猫狗猪。当类比较多的时候,混淆矩阵就会很有用
plt.imshow(m,interpolation=nearest,cmap=plt.cm.ocean)
plt.colorbar()
plt.show()

  (6)绘制子图

#subplots(2,2s)是指定数据是几行几列,这里绘图是两行两列的子图
fig,subplot_arr = plt.subplots(2,2)
#这里是指定在0行0列的位置上绘制直方图,这是一个正常的情况
subplot_arr[0][0].hist(np.random.randn(100),color=b,alpha=0.3)
plt.show()

  (7)颜色、标记、线型

  ax.plot(x,y,‘r--‘):等价于ax.plot(x,y,linestyle=‘--‘,color=‘r‘)

     颜色:b blue

        g:green

        r:red

        c:cyan

        m:magenta

        y:yello

        k:black

        w:white

  (8)刻度、标签和图例

    设置刻度范围

      plt.xlim(),plt.ylim()

      ax.set_xlim(),ax.set_ylim()

    设置显示的刻度

      plt.xticks(),plt.yticks()

    设置刻度标签

      ax.set_xticklabels(),ax.set_yticklabels()

    设置坐标轴标签

      ax.set_xlabel(),ax.set_ylabel()  

    设置标题:ax.set_title()

    图例

      ax.plot(label=‘legend‘)

      ax.legend()、plt.legent()

        loc=‘best‘   自动选择放置图例的最佳位置

fig,ax = plt.subplots(1)
ax.plot(np.random.randn(1000).cumsum(),label=line0)
#设置刻度
ax.set_xlim([0,800])

#设置显示的刻度
ax.set_xticks(range(0,500,100))


#设置刻度标签
ax.set_yticklabels([Jan,Feb,Mar])
#设置坐标轴的标签
ax.set_xlabel(Number)
ax.set_ylabel(Month)

#设置标题
ax.set_title(Example)
#图例
ax.plot(np.random.randn(1000).cumsum(),label=‘学校)
ax.plot(np.random.randn(1000).cumsum(),label=line2)
ax.legend()
ax.legend(loc=best)
plt.legend()

    (9)matplotlib设置

      plt.rc()

  

python学习笔记(14):可视化分析

原文:https://www.cnblogs.com/bigdata-stone/p/10207360.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!