Python数据可视化-Matplotlib线性图(折线图等) 代码教学 Part 1

2023年6月15日11:06:28

接下来要进行代码教学的几个部分:

  1. 画直线图
  2. 画图 plot函数:(变量 颜色 线宽 线种类 图例)
  3. gca : get current axis 得到现在的坐标轴
  4. 散点图
  5. 加标注的两种方法
  6. 防止自己的数据遮挡坐标轴点的数据的方法(基本上所有的图都可以包括进去)
  7. 打印图
    import numpy as np
    import matplotlib.pyplot as plt
    x=np.linspace(-1,1,50)
    y=x**2
    Y=2*x+5
    # plt.figure(num=500,figsize=(10,5))
    # plt.plot(x,y)
    
    # plt.show()
    #直线图
    plt.figure()
    
    #这里l1和l2后面必须加逗号,为了传参给legend成功
    #画图 plot函数:(变量 颜色 线宽 线种类 图例)
    l1,=plt.plot(x,Y,label='this')#最后的label是将曲线命名,方便打印图例
    l2,=plt.plot(x,y,color='red',linewidth=2.0,linestyle='--',label='that')
    
    plt.xlim((-1,2)) #限制x的范围
    plt.ylim((-1,8))
    
    plt.xlabel('i am x') #给x贴标签
    plt.ylabel('i am y')
    
    plt.xticks(np.linspace(-1, 2,5))#更换x,y坐标轴的显示
    #空格前面需要加\来识别空格 $是数学形式
    plt.yticks([-1,0,2,3,7],['$really\ bad$','$bad$','$normal$','$good$','$pretty\ good$'])#需要一一对应
    
    #gca : get current axis 得到现在的坐标轴
    ax=plt.gca()        #得到现在的坐标轴
    ax.spines['right'].set_color('none') #现在坐标轴有四个轴(spines)可以设置颜色为消失
    ax.spines['top'].set_color('none')
    
    ax.xaxis.set_ticks_position('bottom')  #设置x轴为bottom
    ax.yaxis.set_ticks_position('left')    #设置y轴为left
    
    ax.spines['bottom'].set_position(('data',0))    #移动轴的位置
    ax.spines['left'].set_position(('data',0)) 
    
    #散点图
    x0=1
    y0=2*x0+5
    plt.scatter(x0, y0, s=100,color='b') #s代表点数
    plt.plot([x0,x0],[y0,0],'k--',lw=1.5) #两个列表表示点(x0,y0)(x0,1)一一对应
    
    #加标注
    #method 1
    plt.annotate(r'$2x+5=%s$'%y0, xy=(x0,y0),xycoords='data',xytext=(+30,-30), textcoords='offset points',
                 fontsize=16,arrowprops=dict(arrowstyle='->',connectionstyle='arc3,rad=.2'))
    #method 2
    plt.text(x0+0.1, y0-2, r'$this\ is\ the\ some\ text.\ \mu\ \sigma_i\ \alpha_t$')
    
    #防止自己的数据遮挡坐标轴点的数据的方法(基本上所有的图都可以包括进去)
    for label in ax.get_xticklabels() + ax.get_yticklabels():
        label.set_fontsize(12)
        label.set_bbox(dict(facecolor='white',edgecolor='None',alpha=0.7))
    
    plt.legend()   #打印图例
    plt.show()

    喜欢的点个赞哦!

效果实际图:

  • 作者:坤Hi
  • 原文链接:https://blog.csdn.net/weixin_59634927/article/details/122644858
    更新时间:2023年6月15日11:06:28 ,共 1615 字。