注意
移至結尾下載完整範例程式碼。
Markevery 示範#
Line2D
的 markevery
屬性允許在資料點的子集中繪製標記。
可能參數的清單在 Line2D.set_markevery
中指定。簡而言之
單個整數 N 會繪製每第 N 個標記。
整數元組 (start, N) 會繪製每第 N 個標記,從資料索引 start 開始。
整數清單會在指定的索引處繪製標記。
切片會在切片的索引處繪製標記。
浮點數會以螢幕空間中軸對角線的一部分指定標記之間的距離。這將導致點沿線視覺均勻分佈,而與刻度和縮放無關。
具有線性刻度的 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#
請注意,當使用整數對資料進行二次取樣時,對數刻度會導致標記距離出現視覺上的不對稱。相反地,根據圖表大小的比例進行二次取樣會建立均勻分佈,因為它是根據軸對角線的比例,而不是根據資料座標或資料索引。
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 規格會從基礎資料中選取點,且與視圖無關。相反地,基於浮點數的規格與軸對角線相關。雖然縮放不會變更軸對角線,但它會變更顯示的資料範圍,且縮放時會顯示更多點。
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.695 秒)