2020-09-28

matplotlib可视化学习小结

函数式绘图和面向对象式绘图
1.参考了matlab里面的绘图函数语法,简单易上手
2.面向对象式绘图,更懂matplotlib底层架构,有更多的功能

  • numpy:存储和处理大量矩阵
    ndarray:
    创建,一般有三种创建方式:
    1从python的基础数据对象转化
    2.通过numpy内生成的函数生成
    3.从硬盒(文件)读取数据
    索引和切片
    1.print c[1:5]#从1到5,不包括5,第一个数字索引为0
    2.print c[:5]
    3.print c[::-1]
    min,max,medium,mean,variance,sort
    1.np.func(x)
    2 x.func()
    linspace(-10,10,100)#等均分值,从-10到10,分成100份
    x=np.random.randint(1,100,10)#随机生成1-100中的十位数

  • 散点图:显示两组数据的值,每个点的左边位置由变量的值决定
    由一组不连接的点完成,用于观察两种变量的相关性
    例如身高-体重、温度-维度、等等。正相关、负相关、不相关x=np.random.randn(N)
    实例:股票价格涨幅。plt.scatter(height,weight)
    外观调整:①颜色:c ②点大小:s ③透明度:alpha
    ④点形状,marker 加在scatter()里面,用逗号分隔
    import matplotlib.pyplot as plt
    plt.plot([1,2,3],[3,2,1])
    plt.show()

  • 条形图:用来比较多个分类的数据销量,用于较小的数据集分析,例如不同季度的销量,不同国家的人口等

  • 饼状图:百分比
    explode=[0,0.05,0.08,0]
    plt.pie(x=fracs,labels=labels,autopct=’%.0f%%,explode=explode,shadow=True)# 显示比例值autopct=’%.0f%%’
    explode突出某一项,例如第二项为0.5,远离了圆心
    x :(每一块)的比例,如果sum(x) > 1会使用sum(x)归一化;
    labels :(每一块)饼图外侧显示的说明文字;
    explode :(每一块)离开中心距离;
    startangle :起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起;
    shadow :在饼图下面画一个阴影。默认值:False,即不画阴影;
    labeldistance :label标记的绘制位置,相对于半径的比例,默认值为1.1, 如<1则绘制在饼图内侧;
    autopct :控制饼图内百分比设置,可以使用format字符串或者format function
    '%1.1f’指小数点前后位数(没有用空格补齐);
    pctdistance :类似于labeldistance,指定autopct的位置刻度,默认值为0.6;
    radius :控制饼图半径,默认值为1;
    counterclock :指定指针方向;布尔值,可选参数,默认为:True,即逆时针。将值改为False即可改为顺时针。 wedgeprops :字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。
    例如:wedgeprops={‘linewidth’:3}设置wedge线宽为3。
    textprops :设置标签(labels)和比例文字的格式;字典类型,可选参数,默认值为:None。传递给text对象的字典参数。
    center :浮点类型的列表,可选参数,默认值:(0,0)。图标中心位置。
    frame :布尔类型,可选参数,默认值:False。如果是true,绘制带有表的轴框架。
    rotatelabels :布尔类型,可选参数,默认为:False。如果为True,旋转每个label到指定的角度。

  • 箱型图(盒须图、盒式图、箱线图)
    是一种用作显示一组数据分散情况资料的统计图
    上边缘,上四分位数,中位数,下四分位数,下边缘,异常值
    np.random.seed(100)#随机生成100个
    data=np.random.normal(size=(100,5),loc=0,scale=1)
    #5个100的箱图
    labels=[‘A’,‘B’,‘C’,‘D’,‘E’]
    plt.boxplot(data,labels=labels,sym=‘o’,whis=5)
    #sym 调整异常值的形状 whis 代表虚线长度,是一个比例值
    plt.show()

  • 颜色和样式
    八种内建默认颜色缩写
    b:blue g:green r:red c:cyan(青色) m:magenta y:yellow
    k:black w:white
    其他颜色表示方法
    灰色阴影
    html十六进制
    RGB元祖

  • 面向对象vs matlab style
    1.pyplot:经典高层封装,到目前为止,我们所用的都是pyplot
    2.pylab:将Matplotlib和Numpy合并的模块,模拟Matlab的编程环境
    3.面向对象的方式:Matplotlib的精髓,更基础和底层的方式
    总结:推荐综合使用1,3显示导入Numpy
    区别:
    arange()类似于内置函数range(),通过指定开始值、终值和步长创建表示等差数列的一维数组,注意得到的结果数组不包含终值。
    linspace()通过指定开始值、终值和元素个数创建表示等差数列的一维数组,可以通过endpoint参数指定是否包含终值,默认值为True,即包含终值。

  • 子图,subplot
    Matplotlib对象简介>FigureCanvas>Figure>Axes 坐标轴
    fig=plt.figure()
    Figure 实例
    可以添加Axes实例
    ax=fig.add_subplot(111)
    返回Axes实例
    参数一,子图总行数,参数二,子图总列数,参数三,子图位置
    在Figure上添加Axes的常用方法.

  • 多图figure(同一时间生成多张图,多个figure对象)

  • 网格:一张图中以网格为背景,可以看到某个点具体的位置

  • 图例
    plt.legend(loc=2,ncol=1)
    #位置参数
    loc 位置(0:best 1:右上角 2:左上角 3:左下角 4:右下角) ncol 图例分为几列
    坐标轴范围的调整
    axis参数:x轴最小坐标,x轴最大坐标,y轴最小坐标,y轴最大坐标
    plt.axis([-5,5,20,60])xlim参数:x轴最小坐标,x轴最大坐标
    plt.xlim([-5,5])
    plt.xlim(xmin = -5),只调整一边
    plt.ylim()

  • 调整坐标轴刻度
    获取当前图像的坐标轴 面向对象方法nbins代表总共有多少格,指定为x轴,'y’则指定y轴,面向对象无交互功能
    ax = plt.gca()
    ax.locator_params(‘x’,nbins=20)

  • 调整日期
    plt.plot_date(dates,y,linestyle=’-’,marker=’’)
    fig.autofmt_xdate()#将日期的排列大小自适应,斜的日期

  • 添加坐标轴
    双坐标轴 twinx(), twiny()

  • 添加注释
    plt.annotate(‘this is the bottom’,xy=(0,1),xytext=(0,20),arrowprops=dict(facecolor=‘g’,frac=0.5,headwidth=20,width=10))
    #(0,1)是顶点坐标,(0,20)是文字起始的坐标

  • 文字
    绘制蓝色的粗斜文字

  • Tex公式
    #r代表不转译,$作为开始和结束符
    区域填充
    形状
    样式美化
    使用自带样式进行美化
    极坐标 theta
    函数积分图
    散点,条形图
    matplotlib.pyplot.hist(
    x, bins=10, range=None, normed=False,
    weights=None, cumulative=False, bottom=None,
    histtype=u’bar’, align=u’mid’, orientation=u’vertical’,
    rwidth=None, log=False, color=None, label=None, stacked=False,
    hold=None, **kwargs)
    x : (n,) array or sequence of (n,) arrays
    这个参数是指定每个bin(箱子)分布的数据,对应x轴
    bins : integer or array_like, optional
    这个参数指定bin(箱子)的个数,也就是总共有几条条状图
    normed : boolean, optional
    这个参数指定密度,也就是每个条状图的占比例比,默认为1
    color :这个指定条状图的颜色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值