zoukankan      html  css  js  c++  java
  • 『Python』matplotlib常用函数

    1. 绘制图表组成元素的主要函数

    1.1 plot()——展现量的变化趋势

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use('Qt5Agg') 
    
    x = np.linspace(0.05, 10, 1000)
    y = np.cos(x)
    
    plt.plot(x, y, ls="-", lw=2, label="plot figure")
    plt.legend()
    plt.show()
    

    1.2 scatter()——寻找变量之间的关系

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use('Qt5Agg') 
    
    x = np.linspace(0.05, 10, 1000)
    y = np.random.rand(1000)
    
    plt.scatter(x, y, label="scatter figure")
    plt.legend()
    plt.show()
    

    1.3 xlim()——设置x轴的数值显示范围

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use('Qt5Agg') 
    
    x = np.linspace(0.05, 10, 1000)
    y = np.random.rand(1000)
    
    plt.scatter(x, y, label="scatter figure")
    plt.legend()
    plt.xlim(0.05, 10)
    plt.ylim(0, 1)
    plt.show()
    

    1.4 xlabel()——设置x轴的标签文本

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    matplotlib.use('Qt5Agg') 
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="--", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.xlabel("x-axis")
    plt.ylabel("y-axis")
    plt.show()
    

    1.5 grid()——绘制刻度线的网格线

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.use('Qt5Agg')
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.grid(linestyle=":", color="r")
    plt.show()
    

    grid()函数的主要参数为grid(b, which, axis, color, linestyle, linewidth, **kwargs)

    • b:布尔值。就是是否显示网格线的意思。官网说如果b设置为None, 且kwargs长度为0,则切换网格状态
    • which:取值为major, minorboth。 默认为major
    • axis:取值为bothxy。就是想绘制哪个方向的网格线
    • color:这就不用多说了,就是设置网格线的颜色。或者直接用c来代替color也可以
    • linestyle:也可以用ls来代替linestyle, 设置网格线的风格,是连续实线,虚线或者其它不同的线条

    1.6 axhline()——绘制平行于x轴的水平参考线

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.use('Qt5Agg')
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.axhline(y=0.0, c="r", ls="--", lw=2)
    plt.axvline(x=4.0, c="r", ls="--", lw=2)
    plt.show()
    

    1.7 axvspan()——绘制垂直于x轴的参考区域

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.use('Qt5Agg')
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.axvspan(xmin=4.0, xmax=6.0, facecolor="y", alpha=0.3)
    plt.axhspan(ymin=0.0, ymax=0.5, facecolor="y", alpha=0.3)
    plt.show()
    

    1.8 annotate()——添加图形内容细节的指向型注释文本

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.use('Qt5Agg')
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.annotate(s="maximum",
                 xy=(np.pi / 2, 1.0),
                 xytext=((np.pi / 2) + 1.0, 0.8),
                 weight="bold",
                 color="b",
                 arrowprops=dict(arrowstyle="->", connectionstyle="arc3", color="b")
                 )
    plt.show()
    

    xy:被注释图形内容的位置坐标

    xytext:注释文本的位置坐标

    weight:注释文本的字体粗细风格

    color:注释文本的字体颜色

    arrowprops:指示被注释内容的箭头的属性字典

    1.9 text()——添加图形内容细节的无指向型注释文本

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib
    
    matplotlib.use('Qt5Agg')
    
    x = np.linspace(0.05, 10, 1000)
    y = np.sin(x)
    
    plt.plot(x, y, ls="-.", lw=2, c="c", label="plot figure")
    plt.legend()
    plt.text(x=3.10, y=0.09, s="y=sin(x)", weight="bold", color="b")
    plt.show()
    

    1.10 title()——添加图形内容的标题

    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    x = np.linspace(-2, 2, 1000)
    y = np.exp(x)
    
    plt.plot(x, y, ls="-", lw=2, color="g")
    
    plt.title("center demo")
    
    plt.title("left demo", loc="left",
              fontdict={"size": "xx-large",
                        "color": "r",
                        "family": "Times New Roman"})
    
    plt.title("right demo", loc="right",
              family="Comic Sans MS", size=20,
              style="oblique", color="c")
    
    plt.show()
    

    主要参数都在上面代码里体现了

    1.11 legend()——表示不同图形的文本标签图例

    import numpy as np
    import matplotlib as mpl
    import matplotlib.pyplot as plt
    
    x = np.arange(0, 2.1, 0.1)
    y = np.power(x, 3)
    y1 = np.power(x, 2)
    y2 = np.power(x, 1)
    
    plt.plot(x, y, ls="-", lw=2, label="$x^3$")
    plt.plot(x, y1, ls="-", lw=2, label="$x^2$")
    plt.plot(x, y2, ls="-", lw=2, label="$x^1$")
    
    plt.legend(loc="upper left",fontsize="x-large", bbox_to_anchor=(0.05, 0.95), ncol=3,
               title="power function", shadow=True, fancybox=True)
    
    plt.show()
    
    • loc参数控制图例的位置,可选值为
      • best
      • upper right
      • upper left
      • lower left
      • lower right
      • right
      • center left
      • center right
      • lower center
      • upper center
      • center
    • fontsize控制图例字体大小,可选值为
      • int
      • float
      • xx-small
      • x-small
      • small
      • medium
      • large
      • x-large
      • xx-large
    • frameonTrueFalse,是否显示图例边框
    • edgecolor:图例边框颜色
    • facecolor:图例背景颜色,若无边框,参数无效
    • title:设置图例标题
    • fancyboxTrue表示线框直角,False表示线框圆角
    • shadowTrueFalse,是否显示阴影

    2. 常用配置参数

    2.1 线型

    linestylels

    • -:实线
    • --:虚线
    • -.:点划线
    • ::点线

    2.2 线宽

    linewidthlw

    • 浮点数

    2.3 线条颜色

    colorc

    • b:blue,蓝色
    • g:green,绿色
    • r:red,红色
    • c:cyan,蓝绿
    • m:magenta,洋红
    • y:yellow,黄色
    • k:black,黑色
    • w:white,白色

    也可以对关键字参数color赋十六进制的RGB字符串如 color='#900302'

    2.4 点标记类型

    marker,只能用以下简写符号表示

    • .:point marker
    • ,:pixel marker
    • o:circle marker
    • v:triangle_down marker
    • ^:triangle_up marker
    • <:triangle_left marker
    • >:triangle_right marker
    • 1:tri_down marker
    • 2:tri_up marker
    • 3:tri_left marker
    • 4:tri_right marker
    • s:square marker
    • p:pentagon marker
    • *:star marker
    • h:hexagon1 marker
    • H:hexagon2 marker
    • +:plus marker
    • x:x marker
    • D:diamond marker
    • d:thin_diamond marker
    • |:vline marker
    • _:hline marker

    特别地,标记还有mathtext模式

    import numpy as np
    import matplotlib.pyplot as plt
    import matplotlib as mpl
    
    mpl.use('Qt5Agg')
    mpl.rcParams['font.sans-serif'] = ['SimHei']
    mpl.rcParams['font.serif'] = ['SimHei']
    mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题,或者转换负号为字符串
    
    x = np.arange(1, 13, 1)
    y = np.array([12, 34, 22, 30, 18, 13, 15, 19, 24, 28, 23, 27])
    
    fig, ax = plt.subplots(2, 2)
    
    ax[0, 0].scatter(x, y * 1.5, marker=r"$clubsuit$", c="#fb8072", s=500)
    ax[0, 0].locator_params(axis="x", tight=True, nbins=11)
    ax[0, 0].set_xlim(0, 13)
    ax[0, 0].set_xticks(x)
    ax[0, 0].set_title('显示样式{}的散点图'.format(r"$clubsuit$"))
    
    ax[0, 1].scatter(x, y - 2, marker=r"$heartsuit$", c="#fb8072", s=500)
    ax[0, 1].locator_params(axis="x", tight=True, nbins=11)
    ax[0, 1].set_xlim(0, 13)
    ax[0, 1].set_xticks(x)
    ax[0, 1].set_title('显示样式{}的散点图'.format(r"$heartsuit$"))
    
    ax[1, 0].scatter(x, y + 7, marker=r"$diamondsuit$", c="#fb8072", s=500)
    ax[1, 0].locator_params(axis="x", tight=True, nbins=11)
    ax[1, 0].set_xlim(0, 13)
    ax[1, 0].set_xticks(x)
    ax[1, 0].set_title('显示样式{}的散点图'.format(r"$diamondsuit$"))
    
    ax[1, 1].scatter(x, y - 9, marker=r"$spadesuit$", c="#fb8072", s=500)
    ax[1, 1].locator_params(axis="x", tight=True, nbins=11)
    ax[1, 1].set_xlim(0, 13)
    ax[1, 1].set_xticks(x)
    ax[1, 1].set_title('显示样式{}的散点图'.format(r"$spadesuit"))
    
    plt.suptitle("不同原始字符串作为标记类型的展示效果", fontsize=16, weight="black")
    
    plt.show()
    

    官网有一张属性表,先贴在这,以后有空会再补充内容的

  • 相关阅读:
    关于在MAC上进行 LARAVEL 环境 Homestead 安装过程记录
    js 贷款计算器
    js 实现阶乘
    js 两点间距离函数
    composer Your requirements could not be resolved to an installable set of packages
    vue 项目优化记录 持续更新...
    vue 项目打包
    vue 真机调试页面出现空白
    vue 真机调试
    谈谈-Android状态栏的编辑
  • 原文地址:https://www.cnblogs.com/ice-coder/p/12869759.html
Copyright © 2011-2022 走看看