7

Matplotlib でクリッピングを使用して円や楕円などの形状をクリッピングしようとしていますが、何か足りないものがあるに違いありません.なぜこれは円を半分にクリッピングしないのですか?:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
from matplotlib.transforms import Bbox

clip_box = Bbox(((-2,-2),(2,0)))
circle = Circle((0,0),1,clip_box=clip_box,clip_on=True)

plt.axes().add_artist(circle)
plt.axis('equal')
plt.axis((-2,2,-2,2))
plt.show()
4

2 に答える 2

7

コードが機能しない理由はわかりませんが、次のスニペットは期待どおりに機能します。

私の理解では、clip_on は特定のクリッピングを形状に適用することとは関係ありませんが、形状が表示領域でクリップする必要があるかどうかは関係ありません。

import matplotlib.pyplot as plt
from matplotlib.patches import Circle, Rectangle

rect = Rectangle((-2,-2),4,2, facecolor="none", edgecolor="none")
circle = Circle((0,0),1)

plt.axes().add_artist(rect)
plt.axes().add_artist(circle)

circle.set_clip_path(rect)

plt.axis('equal')
plt.axis((-2,2,-2,2))
plt.show()
于 2012-04-17T14:27:24.150 に答える