注意
跳转到末尾 下载完整示例代码。
Markevery 示例#
Line2D
的 markevery
属性允许在数据点的子集上绘制标记。
可能的参数列表在 Line2D.set_markevery
中指定。简而言之
一个整数 N 绘制每 N 个标记。
一个整数元组 (start, N) 绘制每 N 个标记,从数据索引 start 开始。
一个整数列表在指定的索引处绘制标记。
一个切片在切片索引处绘制标记。
一个浮点数指定标记之间的距离,表示为屏幕空间中 Axes 对角线的一部分。这将导致点沿线在视觉上均匀分布,与刻度和缩放无关。
markevery 与线性刻度#
![markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 32], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.4, markevery=(0.2, 0.4)](../../_images/sphx_glr_markevery_demo_001.png)
markevery 与对数刻度#
请注意,当使用整数对数据进行子采样时,对数刻度会导致标记距离出现视觉上的不对称性。相比之下,按图表尺寸的比例进行子采样会创建均匀分布,因为它基于 Axes 对角线的分数,而不是数据坐标或数据索引。
fig, axs = plt.subplots(3, 3, figsize=(10, 6), layout='constrained')
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.set_xscale('log')
ax.set_yscale('log')
ax.plot(x, y, 'o', ls='-', ms=4, markevery=markevery)
![markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 32], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.4, markevery=(0.2, 0.4)](../../_images/sphx_glr_markevery_demo_002.png)
markevery 在缩放图上#
基于整数的 markevery 规范从底层数据中选择点,并且独立于视图。相比之下,基于浮点数的规范与 Axes 对角线相关。虽然缩放不会改变 Axes 对角线,但它会改变显示的数据范围,并且在缩放时会显示更多点。
fig, axs = plt.subplots(3, 3, figsize=(10, 6), layout='constrained')
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.plot(x, y, 'o', ls='-', ms=4, markevery=markevery)
ax.set_xlim((6, 6.7))
ax.set_ylim((1.1, 1.7))
![markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 32], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.4, markevery=(0.2, 0.4)](../../_images/sphx_glr_markevery_demo_003.png)
markevery 在极坐标图上#
r = np.linspace(0, 3.0, 200)
theta = 2 * np.pi * r
fig, axs = plt.subplots(3, 3, figsize=(10, 6), layout='constrained',
subplot_kw={'projection': 'polar'})
for ax, markevery in zip(axs.flat, cases):
ax.set_title(f'markevery={markevery}')
ax.plot(theta, r, 'o', ls='-', ms=4, markevery=markevery)
plt.show()
![markevery=None, markevery=8, markevery=(30, 8), markevery=[16, 24, 32], markevery=[0, -1], markevery=slice(100, 200, 3), markevery=0.1, markevery=0.4, markevery=(0.2, 0.4)](../../_images/sphx_glr_markevery_demo_004.png)
脚本总运行时间: (0 分 12.375 秒)