运行环境

绘图代码

基础绘图

plot 绘制折线图

  • 指令格式plot([x], y, [fmt], *, data=None, **kwargs)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # make data  
    x = np.linspace(0, 10, 100)
    y = 4 + 1 * np.sin(2 * x)
    x2 = np.linspace(0, 10, 25)
    y2 = 4 + 1 * np.sin(2 * x2)

    # plot
    fig, ax = plt.subplots()

    ax.plot(x2, y2 + 2.5, 'x', markeredgewidth=2)
    ax.plot(x, y, linewidth=2.0)
    ax.plot(x2, y2 - 2.5, 'o-', linewidth=2)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

scatter 绘制散点图

  • 指令格式:scatter(x, y)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # make the data  
    np.random.seed(3)
    x = 4 + np.random.normal(0, 2, 24)
    y = 4 + np.random.normal(0, 2, len(x))
    # size and color:
    sizes = np.random.uniform(15, 80, len(x))
    colors = np.random.uniform(15, 80, len(x))

    # plot
    fig, ax = plt.subplots()

    ax.scatter(x, y, s=sizes, c=colors, vmin=0, vmax=100)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

bar 绘制柱状图

  • 代码格式bar(x, height)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # make data:  
    x = 0.5 + np.arange(8)
    y = [4.8, 5.5, 3.5, 4.6, 6.5, 6.6, 2.6, 3.0]

    # plot
    fig, ax = plt.subplots()

    ax.bar(x, y, width=1, edgecolor="white", linewidth=0.7)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

stem 绘制茎叶图

  • 代码格式stem(x, y)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # make data  
    x = 0.5 + np.arange(8)
    y = [4.8, 5.5, 3.5, 4.6, 6.5, 6.6, 2.6, 3.0]

    # plot
    fig, ax = plt.subplots()

    ax.stem(x, y)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

fill_between 绘制区域图

  • 代码格式fill_between(x, y, z)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # make data  
    np.random.seed(1)
    x = np.linspace(0, 8, 16)
    y1 = 3 + 4*x/8 + np.random.uniform(0.0, 0.5, len(x))
    y2 = 1 + 2*x/8 + np.random.uniform(0.0, 0.5, len(x))

    # plot
    fig, ax = plt.subplots()

    ax.fill_between(x, y1, y2, alpha=.5, linewidth=0)
    ax.plot(x, (y1 + y2)/2, linewidth=2)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

stackplot 绘制堆栈图

  • 代码格式stackplot()
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # make data  
    x = np.arange(0, 10, 2)
    ay = [1, 1.25, 2, 2.75, 3]
    by = [1, 1, 1, 1, 1]
    cy = [2, 1, 2, 1, 2]
    y = np.vstack([ay, by, cy])

    # plot
    fig, ax = plt.subplots()

    ax.stackplot(x, y)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

stairs 绘制台阶图

  • 代码格式stairs(values)
  • 实例代码
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # make data  
    y = [4.8, 5.5, 3.5, 4.6, 6.5, 6.6, 2.6, 3.0]

    # plot
    fig, ax = plt.subplots()

    ax.stairs(y, linewidth=2.5)

    ax.set(xlim=(0, 8), xticks=np.arange(1, 8),
    ylim=(0, 8), yticks=np.arange(1, 8))

    plt.show()

样式调整

Line2D对象

  • 当调用plot()函数时,会创建Line2D对象
  • Line2D对象参数解析:
属性 数据类型 解释
xdata list 指定构成线段的一系列数据点的X轴序列
ydata list 指定构成线段的一系列数据点的Y轴序列
linewidthlw float 设定线条的宽度,其单位为磅(points)
linestylels str 定义线条的视觉样式
colorc 定义线条的颜色
marker 设定在每个数据点位置上显示的标记符号样式
markersizems 设定数据点标记符号的尺寸
markeredgecolormec 设定数据点标记符号的边缘颜色
markeredgewidthmew 设定数据点标记符号的边缘宽度
markerfacecolormfc 设定数据点标记符号的内部填充颜色
markerfacecoloraltmfcalt 为数据点标记符号指定一种备用填充颜色,该属性在特定填充样式(fillstyle)下生效。
markevery 控制数据点标记的显示频率
label 为该线条元素分配一个文本标签,此标签通常被用于在图例(legend)中进行标识。
antialiasedaa 一个布尔值,用于确定是否对线条进行抗锯齿渲染。启用此选项可获得更为平滑的视觉效果。
drawstyleds 指定线条的绘制风格,尤用于阶梯图的生成,可选值为 ‘default’、’steps’ 及其变体。
fillstyle 定义数据点标记符号的填充方式,例如完全填充(’full’)或部分填充。
solid_capstyle 定义实线类型线段端点的样式,可选值为 ‘butt’、’projecting’ 或 ‘round’。
solid_joinstyle 定义实线类型线段连接处的样式,可选值为 ‘miter’、’round’ 或 ‘bevel’。
dash_capstyle 定义虚线类型线段中每一小段端点的样式。
dash_joinstyle 定义虚线类型线段连接处的样式。
dashes 通过一个定义了“绘制”与“空白”长度的序列,来自定义虚线的模式。
visible 一个布尔值,用于控制该线条元素在图形上的可见性。
zorder 一个浮点数,用于指定该元素的绘制层级顺序。数值较大者将绘制于上层。
data 提供一种机制,用以同时设置 xdataydata
clip_on 一个布尔值。若为真(True),则超出坐标轴边界的线条部分将被裁剪。
picker 启用该元素的拾取事件响应功能,允许进行交互式操作。
pickradius 设定拾取事件的响应半径阈值。
rasterized 一个布尔值。若设定为真(True),该线条在输出为矢量图形格式时将被栅格化处理。此举可减小文件体积,但可能以图像保真度为代价。
snap 一个布尔值。若为真(True),线条的节点将被强制对齐到最近的像素网格,以提升渲染的清晰度。
url 为该图形元素关联一个统一资源定位符(URL)。
path_effects 一个 AbstractPathEffect 对象的列表,用以向线条应用高级渲染效果,例如阴影或轮廓。