注解
Click here 下载完整的示例代码
市场演示¶
此示例演示了使用 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比例绘制每个标记每种情况
![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)](../../_images/sphx_glr_markevery_demo_001.png)
绘制每种标记的对数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)](../../_images/sphx_glr_markevery_demo_002.png)
为线性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)](../../_images/sphx_glr_markevery_demo_003.png)
绘制每个标记极坐标图的每种情况
![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)](../../_images/sphx_glr_markevery_demo_004.png)
脚本的总运行时间: (0分10.410秒)
关键词:matplotlib代码示例,codex,python plot,pyplot Gallery generated by Sphinx-Gallery