• 『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()
    

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

  • 相关阅读:
    JS之显式类型转换(最全)
    Python如何以两个字符一行方式输出"Hello World"
    封装localstorage为插件挂载到vue原型上
    封装localstorage 为方法
    input radio checkbox选中的c's's
    vue-插件 引用ali.JS,
    时间相加减
    mall-vue 门店版
    account.vue 以及continuePay.vue 通过action 里面的ajax后去支付
    service/axios.js
  • 原文地址:https://www.cnblogs.com/ice-coder/p/12869759.html
Copyright © 2020-2023  润新知