市场演示

此示例演示了使用 markevery Line2d对象的属性。

整数参数非常直观。例如 markevery=5 将从第一个数据点开始绘制每5个标记。

浮点参数允许标记沿直线以大约相等的距离间隔。通过将轴边界框对角线的显示坐标距离乘以 markevery . 将显示最接近理论距离的数据点。

切片或列表/数组也可用于 markevery 指定要显示的标记。

import numpy as np
import matplotlib.pyplot as plt

# define a list of markevery cases to plot
cases = [None,
         8,
         (30, 8),
         [16, 24, 30], [0, -1],
         slice(100, 200, 3),
         0.1, 0.3, 1.5,
         (0.0, 0.1), (0.45, 0.1)]

# define the figure size and grid layout properties
figsize = (10, 8)
cols = 3
rows = len(cases) // cols + 1
# define the data for cartesian plots
delta = 0.11
x = np.linspace(0, 10 - 2 * delta, 200) + delta
y = np.sin(x) + 1.0 + delta


def trim_axs(axs, N):
    """
    Reduce *axs* to *N* Axes. All further Axes are removed from the figure.
    """
    axs = axs.flat
    for ax in axs[N:]:
        ax.remove()
    return axs[:N]

为线性X和Y比例绘制每个标记每种情况

axs = plt.figure(figsize=figsize, constrained_layout=True).subplots(rows, cols)
axs = trim_axs(axs, len(cases))
for ax, case in zip(axs, cases):
    ax.set_title('markevery=%s' % str(case))
    ax.plot(x, y, 'o', ls='-', ms=4, markevery=case)
markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 30], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.3, markevery=1.5, markevery=(0.0, 0.1), markevery=(0.45, 0.1)

绘制每种标记的对数x和y比例的每种情况

axs = plt.figure(figsize=figsize, constrained_layout=True).subplots(rows, cols)
axs = trim_axs(axs, len(cases))
for ax, case in zip(axs, cases):
    ax.set_title('markevery=%s' % str(case))
    ax.set_xscale('log')
    ax.set_yscale('log')
    ax.plot(x, y, 'o', ls='-', ms=4, markevery=case)
markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 30], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.3, markevery=1.5, markevery=(0.0, 0.1), markevery=(0.45, 0.1)

为线性X和Y比例绘制每个标记每种情况,但放大时请注意放大时的行为。当指定了起始标记偏移量时,它总是相对于第一个数据点进行解释,而第一个数据点可能与第一个可见数据点不同。

axs = plt.figure(figsize=figsize, constrained_layout=True).subplots(rows, cols)
axs = trim_axs(axs, len(cases))
for ax, case in zip(axs, cases):
    ax.set_title('markevery=%s' % str(case))
    ax.plot(x, y, 'o', ls='-', ms=4, markevery=case)
    ax.set_xlim((6, 6.7))
    ax.set_ylim((1.1, 1.7))

# define data for polar plots
r = np.linspace(0, 3.0, 200)
theta = 2 * np.pi * r
markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 30], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.3, markevery=1.5, markevery=(0.0, 0.1), markevery=(0.45, 0.1)

绘制每个标记极坐标图的每种情况

axs = plt.figure(figsize=figsize, constrained_layout=True).subplots(
    rows, cols, subplot_kw={'projection': 'polar'})
axs = trim_axs(axs, len(cases))
for ax, case in zip(axs, cases):
    ax.set_title('markevery=%s' % str(case))
    ax.plot(theta, r, 'o', ls='-', ms=4, markevery=case)

plt.show()
markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 30], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.3, markevery=1.5, markevery=(0.0, 0.1), markevery=(0.45, 0.1)

脚本的总运行时间: (0分10.410秒)

关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery