美文网首页互联网科技程序员
数据分析之matplotlib.pyplot模块

数据分析之matplotlib.pyplot模块

作者: 派派森森 | 来源:发表于2019-02-28 15:36 被阅读1次

    首先都得导模块。

    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    from pandas import Series,DataFrame
    
    

    一、绘制单线图

    1,直线图

    x=[1,2,3,4,5]
    y=[2,4,6,8,10]
    plt.plot(x,y)
    
    

    2,抛物线

    x = np.arange(-np.pi,np.pi,0.2)
    y = x**2
    plt.plot(x,y)
    
    

    3,正弦图

    x = np.arange(-np.pi,np.pi,0.2)
    y = np.cos(x)
    plt.plot(x,y)
    
    

    这里得到图形取决于x跟y的关系

    在这推荐下小编创建的Python学习交流群556370268,可以获取Python入门基础教程,这里都是一群爱好Python的小伙伴,每天还会直播和大家交流分享经验哦。

    二、绘制多个曲线的图

    1,连续调用多次plot函数

    plt.plot(x,y)
    plt.plot(x+3,y+3)
    
    

    2,也可以在一个plot函数中传入多对x,y值

    plt.plot(x,y,x+10,y+10)
    
    

    3,将多个曲线绘制在一个table区域中:对象形式创建表图

    a=plt.subplot(row,col,loc)创建曲线图对象
    a.plot(x,y)
    ax1 = plt.subplot(2,2,1)
    ax1.plot(x,y)
    ax1.grid()
    ax2 = plt.subplot(2,2,2)
    ax2.plot(x,y)
    ax3 = plt.subplot(2,2,3)
    ax3.plot(x,y)
    ax4 = plt.subplot(2,2,4)
    ax4.plot(x,y)
    
    

    三、plt的一些样式设置

    1,设置网格线,plt.grid()

    参数:
    axis:控制方向
    color:支持十六进制颜色
    linestyle:线的形状
    alpha:透明度
    plt.grid(axis='both')
    plt.plot(x,y)
    
    

    2,坐标轴界限

    axis方法设置x,y轴刻度值的范围
    plt.axis([xmin,xmax,ymin,ymax])
    plt.axis([-6,6,-2,2])
    plt.plot(x,y)
    
    

    通过设置plt.axis('off')可以把坐标轴刻度给关闭,我们就只会看到图,而看不到刻度

    3,设置画布比例

    plt.figure(figsize=(a,b)) a:x刻度比例 b:y刻度比例 (2:1)表示x刻度显示为y刻度显示的2倍
    plt.figure(figsize=(8,18))
    plt.plot(x,y)
    
    

    4,设置x轴,y轴,图片的名称

    plt.xlabel('xxx')
    plt.ylabel('yyy')
    plt.title('ttt')
    plt.plot(x,y)
    
    

    5,设置图例

    5.1 分别在plot函数中添加label参数,在调用plt.legend()方法显示

    plt.plot(x,y,label='aaa')
    plt.plot(x+3,y+3,label='bbb')
    plt.legend()
    
    

    5.2 直接在legend()方法中传入字符串列表

    plt.plot(x,y,x+3,y+3)
    plt.legend(['aaa','bbb'])
    
    

    5.3 还可以设置legend()方法的参数调整图例的位置和显示样式

    loc参数用于设置图例标签的位置,一般在legend函数内
    
    
    ncol控制图例中有几列,在legend中设置ncol
    plt.plot(x,y,x+3,y+3)
    plt.legend(['aaa','bbb'],loc=3,ncol=2)
    
    

    6,保存图片

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

    四、plot的参数设置

    color或c:颜色,如‘r’或‘red’红色,‘g’绿色;也可以是十六进制,如'#eeefff';还可以RGB元祖,(0.2,0.3,0.4),值只能是0到1
    alpha透明度
    参数linestyle或ls线型
    参数linewidth或lw线宽
    marker点型
    markersize点的大小
    
    

    五、直方图

    一个特殊的柱状图,又叫做密度图。
    【直方图的参数只有一个x!!!不像条形图需要传入x,y】
    plt.hist()的参数
    bins :直方图的柱数,可选项,默认为10
    color :指定直方图的颜色。可以是单一颜色值或颜色的序列。如果指定了多个数据集合,例如DataFrame对象,颜色序列将会设置为相同的顺序。如果未指定,将会使用一个默认的线条颜色
    orientation :通过设置orientation为horizontal创建水平直方图。默认值为vertical
    
    
    data=[1,2,3,2,3,1,4,5,2,2]
    plt.hist(data,bins=10) #data数据时1到5,所以它会把1到5之间分成11个区域,把每个区域所包含数据的个数给统计出来
    
    

    六、条形图

    - 参数:第一个参数是索引。第二个参数是数据值。第三个参数是条形的宽度
    - width 纵向设置条形宽度
    - height 横向设置条形高度
    bar()纵向、barh()横向
    data1=[2,4,1,5]
    data2=[3,5,1,6]
    plt.bar(data1,data2)
    
    
    plt.barh(data1,data2)
    
    

    七、饼图

    饼图主要有两种,取决于第一个数据参数,首先数据的是一个列表,但列表中出现整数时,每块占比等于自身值除以所有值总和,这种情况下占比总和为1;当每个值都是0到1之间,而且总和小于等于1,那么每个的占比就是自身值,这种情况下,占比总和就不一定为1了。

    1,占比总和肯定为1的

    plt.pie([2,4,6]) #表示的是2占12的比例,4占12的比例,6占12的比例
    
    

    2,占比总和不一定为1的

    plt.pie([0.2,0.4,0.1])#表示0.1占10%,0.2占20%,0.4占40%
    
    

    3,属性设置

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

    3.1 给每一块设置标签

    arr=[2,4,6]
    plt.pie(arr,labels=['a','b','c'])
    
    

    3.2 给标签设置离中心的距离

    arr=[2,4,6]
    plt.pie(arr,labels=['a','b','c'],labeldistance=0.5)
    
    

    3.3 数值表示每块的占比,并设置占比离中心的距离

    arr=[2,4,6]
    plt.pie(arr,labels=['a','b','c'],labeldistance=0.5,autopct='%.2f%%',pctdistance=0.8)
    
    

    3.4 设置每块顶点离中心的距离

    arr=[2,4,6]
    plt.pie(arr,labels=['a','b','c'],labeldistance=0.5,autopct='%.2f%%',pctdistance=0.8,explode=[0.2,0.4,0.3])
    
    

    八、散点图

    散点图需要两个参数x,y,但此时x不是表示x轴的刻度,而是每个点的横坐标!
    scatter()
    x = np.random.random(size=(100))
    y = np.random.random(size=(100))
    plt.scatter(x,y)
    
    

    1,meshgrid()和散点图结合扩展

    import matplotlib.pyplot as plt
    import pandas as pd
    import numpy as np
    x1=np.arange(1,5,0.01)
    y1=np.arange(1,5,0.01)
    arr1=np.meshgrid(x1,y1)[0]
    arr2=np.meshgrid(x1,y1)[1]
    plt.scatter(arr1,arr2)
    
    

    在这推荐下小编创建的Python学习交流群556370268,可以获取Python入门基础教程,送给每一位小伙伴,这里是小白聚集地,每天还会直播和大家交流分享经验哦,欢迎初学和进阶中的小伙伴。

    相关文章

      网友评论

        本文标题:数据分析之matplotlib.pyplot模块

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