zoukankan      html  css  js  c++  java
  • matplotlib包画基本的图

    画直线图

    1.最简单的用法:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-3,3,50)  #在(-1,1)范围内生成50个数,等分的,
    y=2*x+1
    
    #一张图里画一条线
    plt.figure()    #如果是一张图里只有一条线,则使用它与不使用他差别不大,如果是在一张图里有2条或多条线,则使用它可以把两条线放在一个图里。
    plt.plot(x,y)
    plt.show()

    2.有的时候需要在一张图里画两条或多条线,这个时候就需要figure()

    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-3,3,50)  #在(-1,1)
    y=2*x+1
    y2=x**2
    
    #一张图里化两条或多条线
    plt.figure()
    plt.plot(x,y)
    plt.plot(x,y2)
    plt.show()

    3.当设置坐标轴时,需要设置坐标轴的范围,单位长度,替换文字

    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-3,3,50)  #在(-1,1)范围内生成50个数,等分的,
    y=2*x+1
    y2=x**2
    
    #修改图中的样式
    plt.figure(num=3,figsize=(8,5))
    plt.plot(x,y2)
    plt.plot(x,y,color='red',linewidth=2.0,linestyle='--') #设置线段的颜色,长度,样式,注意linestyle的值只能是两个‘-’,不能是其他数量个#设置坐标轴,设置坐标轴的范围,长度,替换文字等
    plt.xlim(
    -1,2) #设置x轴的范围
    plt.ylim(-2,3) #设置y轴的范围
    plt.xlabel("i am x!") #设置x轴的名称,解释
    plt.ylabel("i am y!") #设置y轴的名称,解释
    plt.show() #设置坐标轴的刻度的值为指定的值


    new_ticks
    =np.linspace(-1,2,5)
    print(new_ticks)
    plt.xticks(new_ticks)
    #设置x轴的刻度和对应的名称
    plt.yticks([-2,-1.8,-1,.22,3],[r'$really bad$',r'$bad$',r'$normal$',r'$good$',r'$really good$']) #设置y轴刻度和对应的名称
    plt.show()

    4.设置坐标轴之——设置坐标轴的位置

    
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-3,3,50)  #在(-1,1)范围内生成50个数,等分的,
    y=2*x+1
    y2=x**2
    
    #修改图中的样式
    plt.figure(num=3,figsize=(8,5))
    #设置坐标轴原点
    plt.plot(x,y2)
    plt.plot(x,y,color='red',linewidth=2.0,linestyle='--')
    plt.xlabel("i am x!")
    plt.ylabel("i am y!")
    new_ticks=np.linspace(-1,2,5)
    print(new_ticks)
    plt.xticks(new_ticks)
    plt.yticks([-2,-1.8,-1,.22,3],[r'$really bad$',r'$bad$',r'$normal$',r'$good$',r'$really good$'])
    ax=plt.gca()
    ax.spines['right'].set_color('none')
    ax.spines['top'].set_color('none')
    
    ax.xaxis.set_ticks_position('bottom')   #.xaxis.set_ticks_position设置x坐标刻度数字或名称的位置:属性值有top,bottom,both,default,none
    ax.spines['bottom'].set_position(('data',-1))   #设置边框位置,y=0的位置,即x轴绑定在y=1时的位置上
    ax.yaxis.set_ticks_position('left') #.yaxis.set_ticks_position设置x坐标刻度数字或名称的位置
    ax.spines['left'].set_position(('data',0))  #设置边框位置,x=0的位置,即y轴绑定在x=0时的位置上
    plt.show()

    5,图例设置

    
    
    import matplotlib.pyplot as plt
    import numpy as np
    
    x=np.linspace(-3,3,50)  #在(-1,1)范围内生成50个数,等分的,
    y=2*x+1
    y2=x**2
    
    #修改图中的样式
    plt.figure(num=3,figsize=(8,5))

    #
    设置图例 l1,=plt.plot(x,y2,label='linear line') #label设置label的名字 ,注意l1,和l2,是以逗号结尾的,因为plt.plot返回的是一个列表 l2,=plt.plot(x,y,color='red',linewidth=2.0,linestyle='--',label='square line') #label设置label的名字 plt.legend(handles=[l1,l2],labels=['up','down'],loc='best') #将图例添加到图中的最佳位置 plt.xlabel("i am x!") plt.ylabel("i am y!") new_ticks=np.linspace(-1,2,5) print(new_ticks) plt.xticks(new_ticks) plt.yticks([-2,-1.8,-1,.22,3],[r'$really bad$',r'$bad$',r'$normal$',r'$good$',r'$really good$']) ax=plt.gca() ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') plt.show()

    其中loc参数有多种,best表示自动分配最佳位置,其余为

    best->0

    upper right->1

    upper left->2

    lower left->3

    lower right->4

    right->5

    center left->6

    center right->7

    lower center->8

    upper center->9

    center->10

    画散点图:

    import matplotlib.pyplot as plt
    import numpy as np
    
    #data size
    n=1024
    X=np.random.normal(0,1,n)   #生成1024个数,其中平均数是0,方差是1
    Y=np.random.normal(0,1,n)
    T=np.arctan2(Y,X)
    
    plt.scatter(X,Y,s=75,c=T,alpha=0.5)#大小是75,颜色是T,透明度是0.5,X,Y作为location
    plt.xlim(-1.5,1.5)
    plt.xticks(())#隐藏x轴
    plt.ylim(-1.5,1.5)
    plt.yticks(())  #隐藏y轴
    plt.show()

    画柱状图

    import matplotlib.pyplot as plt
    import numpy as np
    
    n=12
    X=np.arange(n)  #穗姐生成12个数字,x为0-11的整数,Y为相应的均匀分布的随机数据
    Y1=(1-X/float(n)*np.random.uniform(0.5,1.0,n))
    Y2=(1-X/float(n)*np.random.uniform(0.5,1.0,n))
    plt.bar(X,+Y1,facecolor='#9999ff',edgecolor='white')    #facecolar设置主题颜色,edgecolor设置边框颜色为白色
    plt.bar(X,-Y2,facecolor='#ff9999',edgecolor='white')
    plt.xlim(-0.5,n)
    plt.xticks(())  #隐藏x轴
    plt.ylim(-1.25,1.25)
    plt.yticks(())  #隐藏y轴
    for x,y in zip(X,Y1):
        plt.text(x+0.4,y+0.05,'%.2f' %y,ha='center',va='bottom')
    for x,y in zip(X,Y2):   #吧X,Y2分别传到x,y中
        plt.text(x+0.4,-y-0.05,'%.2f' %-y,ha='center',va='top') #把数据标记在图上
    plt.show()

  • 相关阅读:
    eclipse设置
    设计模式-单例模式
    java学习--基础知识阶段性总结--基础面试题
    java学习--基础知识阶段性总结--API、集合
    java学习--基础知识阶段性总结--74条
    React官方文档之React 理念
    React官方文档之组合 vs 继承
    React官方文档之状态提升
    Dynamic HTML权威指南(读书笔记)— 第一章 HTML与XHTML参考
    ExtJs3带条件的分页查询的实现
  • 原文地址:https://www.cnblogs.com/nolonely/p/6912051.html
Copyright © 2011-2022 走看看