簡體   English   中英

matplotlib:在圖外添加注釋

[英]matplotlib: add annotation outside of figure

我想在我的圖形軸之外添加一個注釋。 它由一個彩色矩形和一個短文本組成。

對於矩形,我可以設置clip_on=False並且它甚至在軸之外繪制。 文本添加了axes.annotate,我找不到相應的設置。 即使是全局axes.set_clip_on(False)也不會阻止文本被剪掉:

import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

plt.figure()
ax = plt.subplot(111)
plt.plot([0,1], [0,1])

ax.set_clip_on(False)

ax.annotate("test", (0.5, 0.5), fontsize="x-large")
ax.annotate("outside", (0.5, 1.1), fontsize="x-large")

p1 = mpatches.Rectangle([0.6, 0.5], *[0.1, 0.1], color="blue")
p2 = mpatches.Rectangle([0.6, 1.1], *[0.1, 0.1], color="red", clip_on=False)

ax.add_patch(p1)
ax.add_patch(p2)

plt.show()

它看起來像這樣:

帶有剪裁文本的繪圖

如何防止我的圖形之外的文本被剪掉?

您正在查找的相應設置稱為annotation_clip並且可以以與clip_on相同的方式設置為 False 。 完整代碼如下所示:

%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

plt.figure()
ax = plt.subplot(111)
plt.plot([0,1], [0,1])

ax.set_clip_on(False)

ax.annotate("test", (0.5, 0.5), fontsize="x-large")
ax.annotate("outside", (0.5, 1.1), fontsize="x-large", annotation_clip=False)

p1 = mpatches.Rectangle([0.6, 0.5], *[0.1, 0.1], color="blue")
p2 = mpatches.Rectangle([0.6, 1.1], *[0.1, 0.1], color="red", clip_on=False)

ax.add_patch(p1)
ax.add_patch(p2)

plt.show()

結果是:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM