• matplotlib绘图


    这一块主要用于记录自己利用这段空闲时间,进一步提高自己matplotlib画图能力,对一些模糊问题进行重新学习及强化。

    一、概念问题

    二、细节问题

    绘制折线图过程中的细节问题

    1、画图中文显示问题

    共有两种方法:

    1)使用matplotlib.rc

    在代码前面添加

    font = {'family': 'MicroSoft YaHei',
            'weight': 'bold',
            }
    matplotlib.rc('font',**font)
    
    • 1
    • 2
    • 3
    • 4

    2)使用font_manager

    from matplotlib import pyplot as plt
    # 先使用fc-list :lang=zh 命令在终端查看,中文字体在电脑中的位置。
    my_font=font_manager.FontProperties(fname='C:/Windows/fonts/HGZY_CNKI.TTF')
    plt.xticks(fontproperties=my_font)
    
    • 1
    • 2
    • 3
    • 4

    2、一张图显示多组数据

    (1)在一种图中显示多条曲线

    from matplotlib import pyplot as plt
    x=[1,2,3,4,5]
    y1=[1,1,1,2,3]
    y2=[2,2,5,6,8]
    plt.plot(x,y1,label='第一代')
    plt.plot(x,y2,label='第二代')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    (2)设置曲线图例:运行上面的代码会发现,曲线的含义即图例,并没有显示出来,还需要做如下处理:

    plt.plot(x,y1,label='第一代')
    plt.plot(x,y2,label='第二代')
    plt.legend()
    
    • 1
    • 2
    • 3

    (3)曲线图例中文显示:运行上述代码会发现,图例可以显示,但是中文含义却不能正常显示,于是需要对图例的字体进行处理:

    # my_font上面的代码定义过
    plt.legend(prop=my_font)
    
    • 1
    • 2

    (4)曲线图例位置设置:loc是对图例的位置进行设置,有多个位置可以选择。
    ‘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

    # my_font上面的代码定义过
    plt.legend(prop=my_font,loc='upper right')
    # plt.legend(prop=my_font,loc=1)
    
    • 1
    • 2
    • 3

    (5)曲线颜色更改:red、white、green、blue等
    线条格式更改:“—.”、“–”等
    线条粗细更改:如linewidth=5
    透明度更改:alpha=0…2

    plt.plot(x,y1,label='第一代',color='red',linestyle='--',linewidth=5,alpha=0.2)
    
    • 1

    补充
    (1)在图中设置网格,可以使用:plt.grid()
    (2)对图中网格的清晰度进行设置,可以使用alpha,alpha最大值为1,最小值为0,值越大越清晰,如:plt.grid(alpha=0.1)
    (3)设置图片大小和分辨率:plt.figure(figsize=(20,8),dpi=80)
    (4)保存图片:plt.savefig('./result.png').将文件保存到当前文件夹中。
    (5)设置x轴、y轴、title的总的含义:plt.xlabel('时间')plt.ylabel('个数')plt.title('对应时间的个数')
    (6)设置x轴、y轴的刻度:plt.xticks(x,x_lable,rotation=45,fontproperties=my_font)


    除了折线图之外,matplotlib还可以绘制散点图、柱状图、直方图、饼图、箱线图等

    二、新内容新知识

    1、绘制散点图

    使用scatter函数

    plt.scatter(x,y,label='第一代')
    
    • 1

    其余地方与plt.plot()一样。

    2、绘制条形图

    # 竖着的条形图
    plt.bar(x,y,width=0.5,color='orange')
    # 横着的条形图
    plt.barh(x,y,height=0.2,color='orange')
    
    • 1
    • 2
    • 3
    • 4

    3、绘制直方图

    组数:将数据分组,分组的个数。
    组距:每个小组的两个端点的距离。
    组数 = 极差 / 组距 =(最大值 - 最小值)/ 组距

    x=[1,5,2,6,4,9,45,64,2]		# 原始数据
    # 计算组数
    d=5   # 组距
    num_bins=(max(x)-min(x))//d		# 组数
    plt.hist(x,num_bins)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    频率直方图

    plt.hist(a,num_bins,density=True)
    
    • 1

    4、其他绘制工具

    plotly:https://plotly.com/python/
    matplotlib其他示例:https://matplotlib.org/stable/gallery/index.html
    seaborn:http://seaborn.pydata.org/

    参考资料

    1、学习视频

  • 相关阅读:
    AI系统论文阅读:SmartMoE
    2022年全球及中国手术感控行业头部企业市场占有率及排名调研报告
    六、阻塞队列与源码分析(上)
    web前端开发面试集合分享
    npm或pnpm终端执行失败问题
    C++独立编译和命名空间
    索引底层原理-锁机制
    沃尔玛erp系统功能分析
    Python基础语法规则和Java不同的地方
    Linux基础工具|代码调试工具gdb的使用
  • 原文地址:https://blog.csdn.net/weixin_45650561/article/details/128197715