• 3.数据可视化入门介绍


    数据可视化库:1.matplotlib; 2.seabron(辅助的库,更强大更丰富更好看); 3.Axes3D ...
    1.导包

     1 import numpy as np
     2 import pandas as pd
     3 
     4 import matplotlib.pyplot as plt
     5 
     6 import seaborn as sns
     7  8 #去除执行当中报警告提示的库
     9 import warnings
    10 warnings.filterwarnings("ignore")
    11

    2.图形初始化设置

     1 # 全局样式,style样式,use使用figure身材,figsize(x,y)大小,单位是英寸
     2 plt.style.use({'figure.figsize':(20,10)})
     3 
     4 # 显示问题冲突 
     5 plt.show()               # 强制显示
     6 
     7 #在pycharm中使用,图片打印不出来的时候,使用魔法方法,在行里显示,只能在jupyter中使用
     8 %matplotlib inline  
     9  
    10 #国外的库都不支持中文
    11 from pylab import mpl   # 使得默认支持中文 需要引入pylab库中的mpl
    12 mpl.rcParams['font.sans-serif'] = ['SimHei']  # 设置字体
    13 mpl.rcParams['axes.unicode_minus'] = False

    3.seaborn库基本设置

     1 sns.set_style('darkgrid') # sns设置背景颜色  white(默认)  dark暗色  darkgrid暗网
     2 
     3 sns.set_style()           # 设置样式
     4 
     5 sns.set_context('paper')  # 控制刻度
     6 
     7 # 调色板
     8 sns.color_palette()       # 设置颜色
     9 sns.set_palette()         # 设置颜色
    10 sns.palplot()             # 显示颜色,在数据可视化中,带有plot的都是显示作用
    11 12 # h=0.01, l=0.6 (亮度), s=0.65(饱和度)

      13 # 调色板 cool hot rainbow hls spring...

      14 Sns.palplot(sns.color_palette(‘hls’,7))

    线性图:plt.plot(x,y)

    x 表示x轴数据点,y 表示y轴数据点

    网格线:plt.grid(color='black',axis='both',alpha=0.3)

    color颜色;alpha 透明度 ;axis轴,x或y。

    坐标界限:plt.axis('auto') 随着横纵坐标轴的数据自动设置

     

    plt.axis([-15,15,-5,5]) 表示x轴界限是【-15,15】,y轴界限是【-5,5】

    取消样式:plt.axis('off')   

    标题:plt.title()

    plt.title('this is sun!')

    x轴的标记:xlabel() 

    plt.xlabel('X',fontsize=20,color='orange')

    y轴的标记:ylabel() 

    plt.ylabel('f(x)',fontsize=20,color='cyan',rotation=0)   # rotation角度,f(x)旋转90度

    设置图例: plt.legend()   

    注意:画图的时候指定好图例名字才有效,如 label='top'

    指定图例的位置:loc参数

     

    plt.legend(loc=0):loc=0代表最适合的位置,计算机自动识别

    plt.legend(loc=[0,1]):表示在图片的左上角,将图例放在画布的外面,x或者y的倍数 ,这里是x的0倍 y的1倍

    设置图片大小(局部的)

    plt.figure(figsize=(20,10))

     ,线,颜色的属性

    线 linestyle:(简写ls), ①:②-- ③-.④-

    宽度 line(简写lw)   

    字体 fontsize:(单位px)   

    透明度 alpha :百分比         

    角度 rotation

    点 marker: o(圆点) s(方形) p(五边形) d(小菱形) 1 2 3 4 8(八边)'*'

    点颜色color:c

    点的大小 markersize

    点边缘的宽度 markeredgewidth

    点边缘面的颜色 markeredgecolor

    点中间面的颜色 markerfacecolor

    1 plt.plot(x,y,label='top',ls=':',lw=3,c='c',marker=1,markersize=100)
    2 
    3 plt.plot(x,-y,label='bottom',ls='--',lw=2,marker='s',markersize=7,color='#0FF0FFF0')
    4 
    5 plt.axis('equal')

    更换刻度

    1 x = np.arange(10)
    2 y = x + 10
    3 plt.plot(x,y,c='orange',lw=10,marker='o',markersize=100,markerfacecolor='r',markeredgecolor='g',markeredgewidth=10)
    4 
    5 #第一个参数是坐标的范围  第二格参数是要替换的字符  映射
    6 plt.xticks(np.arange(0,9),list('abcdefghi'),fontsize=20)
    7 plt.yticks(np.arange(0,9),list('abcdefghi'),fontsize=20)

    plt 中的实体标识 :碰到特殊符号不好打印的时候 如pi(3.14)

     1 # subplot代表的是画布  
     2 axes = plt.subplot()
     3 
     4 # 画布中的用axes调用
     5 axes.set_xticks([-pi,-pi/2,0,pi/2,pi])
     6 axes.set_xticklabels(['-$pi$','-$pi$/2','0','$pi$/2','$pi$'],fontsize=20,color='orange',rotation=30)
     7 
     8 axes.set_yticks([-1,0,1])
     9 axes.set_yticklabels(['min',0,'max'],fontsize=20,color='orange',rotation=30)
    10 
    11 # 画布中设置标题
    12 axes.set_title('abc')

    直方图 plt.hist()

    1 # 针对一维数据进行统计的,统计出现次数    
    2 a = np.random.randint(0,10,10)   
    3 a                    # 得到 array([8, 3, 2, 3, 5, 3, 4, 5, 6, 1])
    4 plt.hist(a,bins=20)  # bins 调节直方的宽度
    5 
    6 # seabron当中的直方图
    7 sns.distplot(a,bins=20,color='r')

    柱状图plt.barh()

    描述的是二维数据的 

    matplotlib里面的柱状图,纵向的:plt.bar(X,Y)

    matplotlib里面的柱状图,横向的:plt.barh(X,Y)

    seabron里面的柱状图(推荐使用),hue匹配条件  

    1 sns.barplot(data=titanic,x='sex',y='survived',hue='class')

     plt.pie()

     1 plt.figure(figsize=(14,8))
     2 gdp = np.array([2794696,20513000,2689992,13457267,5070626,4029140,2808899])
     3 label=['fr','usa','ind','ch','jp','ge','uk']
     4 
     5 explode = [0,0,0.1,0,0,0,0.2]  # 图片分离ind uk
     6 # textprops={'fontsize':30}      设置字体大小
     7 plt.pie(gdp,labels=label,textprops={'fontsize':30},explode=explode,colors=sns.color_palette('hls',7))
     9 
    10 plt.axis('equal')

     

    箱图plt.boxplot()

    主要是检查数据的分布,查看异常值

    plt.boxplot(data)

    使用seabron画的箱图

    sns.boxplot(data)

     

    散布图(散点图)plt.scatter()

    主要作用:查看数据的分布情况  越乱的数据越不利于做机器学习

     1 # 使用sns里的鸢尾花数据集
     2 iris = sns.load_dataset('iris')
     3 
     4 plt.scatter(iris.iloc[:,0],iris.iloc[:,1],c=target,cmap='rainbow') # c=target会自动给每种类别分配颜色的,使用seabron里面自带的鸢尾花数据集
     5 
     6 # seabron中的散布图
     7 # 1.散步密度图
     8 sns.jointplot(data=iris,x='sepal_length',y='sepal_width',color='orange',kind='hex')    # kind:{"scatter"|"reg"|"resid"|"kde"|"hex"}散点|带有回归的线|带有回归的线(考虑到行了)|密度图(像遥感)|六角形
     9 
    10 # 2.回归散布图
    11 sns.regplot(data=iris,x='sepal_length',y='sepal_width')  # 拟合曲线   根据花萼的 没有什么规律
    12 
    13 sns.regplot(data=iris,x='petal_length',y='petal_width',) # 根据花瓣的回归散布图,比较有线性规律
    14 
    15 # 3.线性分类散布图
    16 sns.lmplot(data=iris,x='petal_length',y='petal_width',hue='species',markers=['o','x','d']) # 每一种的趋势单独的预测出;hue='species'条件,根据种类;markers=['o','x','d'] 点的形状 圆 x 棱形
    17 
    18 # 4.散布图矩阵
    19 sns.pairplot(data=iris,hue='species',kind='scatter',diag_kind='auto')   # diag_kind : {'hist', 'kde'},对角线上图形类型的选择 hist直方图 kde 密度图

    3D图形

     1 # 绘制3D图
     2 from mpl_toolkits.mplot3d.axes3d import Axes3D  # 引入3d库
     3 fig = plt.figure(figsize=(16,10))
     4 
     5 #实例化Axes3D
     6 axes3d = Axes3D(fig)
     7 
     8 #调用对象scatter3D
     9 axes3d.scatter3D(iris.iloc[:,0],iris.iloc[:,1],iris.iloc[:,2],c=target,s=60,cmap='hot')
    10 
    11 # 保存
    12 plt.savefig('sca.png',dpi=100)

     

  • 相关阅读:
    java加密解密用法
    进程和线程
    office使用技巧
    apktool+dex2jar+jd_gui
    shell编程学习
    编程常犯的错误
    编程语言学习清单
    使用github托管自己的项目
    c# 异常 的 异想
    DNLA自学(一) UPnP设备发现
  • 原文地址:https://www.cnblogs.com/bonheur/p/12444792.html
Copyright © 2020-2023  润新知