• matplotlib python 画图介绍


    1、figure

    figure可以帮助我们绘制出多个图像。

    几个figure 就会绘制出几个图像。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. #可以绘制多张图片 在不同的figure模块中
    7. plt.figure() #图像1
    8. plt.plot(x,y)
    9. plt.figure() #图像2 图像2下有两条线
    10. plt.plot(x,y)
    11. plt.plot(x,y2,color='r',linewidth=2,linestyle='--') #设置线的颜色、宽度与样式
    12. plt.show()

    结果:

    2、坐标轴的设置

    2.1 修改坐标轴的标尺 和标签

    plt.xlim() plt.ylim()

    plt.xlabel() plt.ylabel()

    plt.xticks() plt.yticks()

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. plt.plot(x,y)
    7. plt.plot(x,y2,color='r',linewidth=2,linestyle='--')
    8. plt.xlim((-1,2)) #x坐标轴限制
    9. plt.ylim((-2,3))
    10. plt.xlabel('x') #x坐标轴标签
    11. plt.ylabel('y')
    12. new_ticks=np.linspace(-1,2,5) #x坐标轴新的显示尺度 3/(5-1)
    13. y_ticks={-2:"v b",-1:'b',0:'n',1:'g',3:"v g"}
    14. plt.xticks(new_ticks) #设置x坐标轴的标尺
    15. plt.yticks([-2,-1,0,1,3],[r'$really\ b$',r'$b\ \alpha$',r'$n$',r'$g$',r'$really\ g$']) #设置y坐标轴的标尺和标签
    16. plt.show()

    2.2 修改坐标轴的位置 

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. plt.plot(x,y)
    7. plt.plot(x,y2,color='r',linewidth=2,linestyle='--')
    8. plt.xlim((-1,2)) #x坐标轴限制
    9. plt.ylim((-2,3))
    10. plt.xlabel('x') #x坐标轴标签
    11. plt.ylabel('y')
    12. new_ticks=np.linspace(-1,2,5) #x坐标轴新的显示尺度 3/(5-1)
    13. y_ticks={-2:"v b",-1:'b',0:'n',1:'g',3:"v g"}
    14. plt.xticks(new_ticks) #设置x坐标轴的标尺
    15. plt.yticks([-2,-1,0,1,3],[r'$really\ b$',r'$b\ \alpha$',r'$n$',r'$g$',r'$really\ g$']) #设置y坐标轴的标尺和标签
    16. ax=plt.gca() #get current axis
    17. ax.spines['right'].set_color('none') #将右边的上边设置为没有颜色
    18. ax.spines['top'].set_color('none')
    19. ax.xaxis.set_ticks_position('bottom')#将下边的边框设为x轴 只有bottom top both default 四个
    20. ax.yaxis.set_ticks_position('left') #将左边的边框设为y轴 默认也是如此 只有left right both default四个
    21. ax.spines['bottom'].set_position(('data',0)) #把x轴设置在 y=0这里
    22. ax.spines['left'].set_position(('data',0))#把y轴设置在 x=0这里
    23. plt.show()

    3、legend  线段说明

    在plot中添加了label 给线段添加标签之后,要想显示,就需要加上plt.legend()

    legend 中有三个参数 handles labels loc

    handels 要使用时 我们必须用一个变量接收plt.plot()且变量后一定要加逗号

    handles可以确定我们显示几个线段说明,并且我们可以修改原来在plot中的label。

    labels 是用于修改我们的线段说明,我们也可以不在plt.plot中设置label,直接在legend中设置。

    loc是图例的位置,有不同的参数可以用,如upper right,best.....等

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. plt.xlim((-1,2)) #x坐标轴限制
    7. plt.ylim((-2,3))
    8. plt.xlabel('x') #x坐标轴标签
    9. plt.ylabel('y')
    10. new_ticks=np.linspace(-1,2,5) #x坐标轴新的显示尺度 3/(5-1)
    11. y_ticks={-2:"v b",-1:'b',0:'n',1:'g',3:"v g"}
    12. plt.xticks(new_ticks) #设置x坐标轴的标尺
    13. plt.yticks([-2,-1,0,1,3],[r'$really\ b$',r'$b\ \alpha$',r'$n$',r'$g$',r'$really\ g$']) #设置y坐标轴的标尺和标签
    14. l1,=plt.plot(x,y,label='up')
    15. l2,=plt.plot(x,y2,color='r',linewidth=2,linestyle='--',label='down')
    16. plt.legend(handles=[l1,],labels=['aaa'],loc='best')
    17. plt.show()

    这里只显示了一条线段的图例说明,并且修改了label 

     

    4、Annotation 注解

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. plt.plot(x,y)
    7. plt.xlim((-1,2)) #x坐标轴限制
    8. plt.ylim((-2,4))
    9. plt.xlabel('x') #x坐标轴标签
    10. plt.ylabel('y')
    11. ax=plt.gca()
    12. ax.spines['right'].set_color('none') #将右边的上边设置为没有颜色
    13. ax.spines['top'].set_color('none')
    14. ax.xaxis.set_ticks_position('bottom')#将下边的边框设为x轴 只有bottom top both default 四个
    15. ax.yaxis.set_ticks_position('left') #将左边的边框设为y轴 默认也是如此 只有left right both default四个
    16. ax.spines['bottom'].set_position(('data',0)) #把x轴设置在 y=0这里
    17. ax.spines['left'].set_position(('data',0))#把y轴设置在 x=0这里
    18. x0=1
    19. y0=2*x0+1
    20. plt.scatter(x0,y0,s=50,color='r') #一个点
    21. plt.plot([x0,x0],[0,y0],'k--',lw=3) #两点确定一条线段 k为black --为 linestyle,lw 为linewidth
    22. plt.annotate(r'$2x+1=%s$' % y0,xy=(x0,y0),xycoords='data',xytext=(+30,-30),textcoords='offset points',fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
    23. plt.text(-1,3,r'$this\ is\ text\ \mu_i$',fontdict={'size':16,'color':'r'})
    24. plt.show()

    5、ticks能见度

    比如这种情况下,横线就影响了我们对于标尺的观看,所以我们可以调整ticks的能见度,比如加一个背景等。

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.linspace(-3,3,50)
    4. y=2*x+1
    5. y2=x**2
    6. plt.plot(x,y,lw=10,zorder=1) #设置图层顺序
    7. plt.xlim((-1,2)) #x坐标轴限制
    8. plt.ylim((-2,4))
    9. plt.xlabel('x') #x坐标轴标签
    10. plt.ylabel('y')
    11. ax=plt.gca()
    12. ax.spines['right'].set_color('none') #将右边的上边设置为没有颜色
    13. ax.spines['top'].set_color('none')
    14. ax=plt.gca()
    15. ax.spines['right'].set_color('none') #将右边的上边设置为没有颜色
    16. ax.spines['top'].set_color('none')
    17. ax.xaxis.set_ticks_position('bottom')#将下边的边框设为x轴 只有bottom top both default 四个
    18. ax.yaxis.set_ticks_position('left') #将左边的边框设为y轴 默认也是如此 只有left right both default四个
    19. ax.spines['bottom'].set_position(('data',0)) #把x轴设置在 y=0这里
    20. ax.spines['left'].set_position(('data',0))#把y轴设置在 x=0这里
    21. for label in ax.get_xticklabels()+ax.get_yticklabels():#对x和y的ticks进行调整
    22. label.set_fontsize(12) #设置字体
    23. label.set_zorder(2) #设置图层顺序
    24. label.set_bbox(dict(facecolor='r',edgecolor='None',alpha=0.3)) #设置背景框 颜色 是否有边框,以及透明度
    25. plt.show()

    6、scatter散点图

    其中最主要的也就是x,y,s,c,marker,alpha

    marker属性:

    1. import matplotlib.pyplot as plt
    2. import numpy as np
    3. x=np.random.normal(0,1,1024) #随机生成xy
    4. y=np.random.normal(0,1,1024)
    5. colors = np.random.rand(1024) #随机生成代表颜色的数字
    6. plt.scatter(x,y,s=75,c=colors,alpha=0.4)
    7. plt.xticks([]) #x的坐标不在显示
    8. plt.yticks([])
    9. plt.xlim((-1.5,1.5))
    10. plt.ylim((-1.5,1.5))
    11. plt.show()

    结果:

  • 相关阅读:
    Fiddler Everywhere 3.2.1 Crack
    blender assetBrowser 资产浏览器
    Leetcode338. 比特位计数
    elasticsearch安装
    Java 中你绝对没用过的一个关键字?
    QPixmap图像处理详解
    k8s整合kong
    vue、react中虚拟的dom
    如何安装Xftp实现上传和下载文件
    C语言中这么骚的退出程序的方式你知道几个?
  • 原文地址:https://blog.csdn.net/qq_45906101/article/details/133715940